|
|
- package middleware
-
- import (
- "LAPP_AS/conf"
- "LAPP_AS/utils"
- "LAPP_AS/web/middleware/jwts"
- "github.com/kataras/iris/v12"
- "strings"
- )
-
- type Middleware struct {
- }
-
- func ServeHTTP(ctx iris.Context) {
- path := ctx.Path()
- // 过滤静态资源、login接口、首页等...不需要验证
- if checkURL(path) || strings.Contains(path, "/public") {
- ctx.Next()
- return
- }
- // jwt token拦截
- if !jwts.Serve(ctx) {
- return
- }
-
- // 系统菜单不进行权限拦截
- publicRutes := conf.AppConfig.PublicRute
- res := utils.IsContain(publicRutes,path)
- if !res {
- // casbin权限拦截
- //ok := casbins.CheckPermissions(ctx)
- //if !ok {
- // return
- //}
- }
- //if !strings.Contains(path, "/sysMenu") {
- // // casbin权限拦截
- // ok := casbins.CheckPermissions(ctx)
- // if !ok {
- // return
- // }
- //}
-
- // Pass to real API
- ctx.Next()
- }
-
- /**
- return
- true:则跳过不需验证,如登录接口等...
- false:需要进一步验证
- */
- func checkURL(reqPath string) bool {
- //过滤
- for _, v := range conf.AppConfig.Other.IgnoreURLs {
- if reqPath == v {
- return true
- }
- }
- return false
- }
-
|