|
|
@@ -1,44 +1,23 @@
|
|
|
package middleware
|
|
|
|
|
|
import (
|
|
|
- "encoding/base64"
|
|
|
- "fmt"
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
|
|
|
sysmodels "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/wfclient"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
- "strings"
|
|
|
)
|
|
|
|
|
|
func LoginWare() gin.HandlerFunc {
|
|
|
return func(c *gin.Context) {
|
|
|
//验证登陆
|
|
|
- //fmt.Println("header-Authorization:" + c.GetHeader("Authorization"))
|
|
|
- s := strings.SplitN(c.GetHeader("Authorization"), " ", 2)
|
|
|
-
|
|
|
- if len(s) != 2 {
|
|
|
- fmt.Println("sso header not found.")
|
|
|
- c.Redirect(302, "/login")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- b, err := base64.StdEncoding.DecodeString(s[1])
|
|
|
- fmt.Println("base64 decode:" + string(b))
|
|
|
- if err != nil {
|
|
|
- fmt.Println("sso header decode error." + err.Error())
|
|
|
+ token := c.GetHeader("token")
|
|
|
+ if token == "" {
|
|
|
+ c.AbortWithStatusJSON(401, sysmodels.SysReturn{401, "token is empty", ""})
|
|
|
c.Redirect(302, "/login")
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- pair := strings.SplitN(string(b), ":", 3)
|
|
|
- if len(pair) != 3 {
|
|
|
- fmt.Println("sso header len(pair) !=3")
|
|
|
- c.Redirect(302, "/login")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- tk := utils.GetGlobalTokenStore().Get(pair[0] + pair[2])
|
|
|
+ tk := utils.GetGlobalTokenStore().Get(token)
|
|
|
if tk == nil {
|
|
|
c.AbortWithStatusJSON(401, sysmodels.SysReturn{401, "token Invalid", ""})
|
|
|
c.Redirect(302, "/login")
|