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  }