gitee.com/haifengat/cas@v0.0.6/demo/main.go (about) 1 /* 2 * @Author: haifengat hubert28@qq.com 3 * @Date: 2023-05-01 11:36:29 4 * @LastEditors: haifengat hubert28@qq.com 5 * @LastEditTime: 2023-05-01 11:37:38 6 * @FilePath: /cas/demo/main.go 7 * @Description: cas 示例 8 */ 9 package main 10 11 import ( 12 "os" 13 14 cas "gitee.com/haifengat/cas" 15 "github.com/gin-contrib/sessions" 16 "github.com/gin-contrib/sessions/memstore" 17 "github.com/gin-gonic/gin" 18 "github.com/sirupsen/logrus" 19 ) 20 21 var ( 22 dmDSN string = "dm://SYSDBA:SYSDBA001@localhost:5236" 23 modelFile string = "./config/rbac_model.conf" 24 ) 25 26 func main() { 27 r := gin.Default() 28 r.SetTrustedProxies([]string{}) 29 30 // 创建基于cookie的存储引擎,secret11111 参数是用于加密的密钥 31 // store := cookie.NewStore([]byte("secret11111")) 32 // 设置session中间件,参数 casdoor_demo,指的是session的名字,也是cookie的名字 33 // store是前面创建的存储引擎,我们可以替换成其他存储引擎 34 store := memstore.NewStore([]byte("secret")) 35 36 // 权限检查在登录之后!! 37 if err := cas.InitCasAdapter(dmDSN, modelFile); err != nil { 38 logrus.Error(err) 39 os.Exit(1) 40 } 41 42 r.GET("/getPolicy", GetPolicy) 43 r.POST("/addPolicy", AddPolicy) 44 r.POST("/removePolicy", RemovePolicy) 45 r.POST("/updatePolicy", UpdatePolicy) 46 47 r.POST("/addUserToRole", AddUserToRole) 48 r.POST("/removeUserFromRole", RemoveUserFromRole) 49 r.GET("/getUsersForRole", GetUsersForRole) 50 r.GET("/getRolesForUser", GetRolesForUser) 51 52 api := r.Group("/api") 53 { 54 if err := cas.InitCas("./config/token_jwt_key.pem", "./demo/config.yaml"); err != nil { // 初始化 casdoor 参数 55 logrus.Error(err) 56 os.Exit(1) 57 } 58 api.Use(sessions.Sessions("casdoor", store)) 59 api.Use(cas.HdlCheckAuth) // 检查登录 60 api.Use(cas.HdlCheckRole) // 权限检查 61 cas.InitRouter(api) 62 } 63 r.Run(":9000") 64 }