From e87b04d7f9d6b25c858d421432bed5443f91b9df Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期一, 16 九月 2019 11:10:34 +0800 Subject: [PATCH] update goffmpeg and capture --- middlewares/auth/auth.go | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 0 deletions(-) diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go index 8832b06..4c7c75d 100644 --- a/middlewares/auth/auth.go +++ b/middlewares/auth/auth.go @@ -1 +1,70 @@ package auth + +import ( + "github.com/gin-gonic/gin" + "net/http" + "strings" + "webserver/extend/config" + "basic.com/valib/logger.git" +) + +const ( + TokenKey = "abc123456789" +) + +type Auth interface { + Check(c *gin.Context)bool + User(c *gin.Context)interface{} + Login(http *http.Request,w http.ResponseWriter,user map[string]interface{})interface{} + Logout(http *http.Request,w http.ResponseWriter) bool +} + +func GenerateAuthDriver() *Auth { + var authDriver Auth + authDriver = NewJwtAuthDriver() + return &authDriver +} + +func AuthHandler() gin.HandlerFunc { + return func(c *gin.Context) { + urlPath := c.Request.URL.Path + + if strings.Contains(urlPath,"/data/api-v") && !strings.Contains(urlPath,"login"){ + //jwtDriver :=NewJwtAuthDriver() + //if !jwtDriver.Check(c) { + // util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍") + // c.Abort() + //} + c.Next() + } else if strings.Contains(urlPath,"/httpImage") { + domain := config.Server.PublicDomain + //domainReg := regexp.MustCompile(``+domain+``) + //if domainReg.MatchString(host) {//鍩熷悕璁块棶 + // imgUrl = domain + //} + + urlPath = strings.Replace(urlPath, "/httpImage", "", -1) + if strings.Contains(urlPath,domain) { + urlPath = strings.Replace(urlPath,"/"+domain,"",-1) + } + logger.Debug("urlPath:",urlPath) + idx := strings.LastIndex(urlPath, ":") + tmpPath := "" + if idx >-1 {//璺緞涓寘鍚湁绔彛,鍙栫鍙d互鍚庤矾寰� + tmpPath = urlPath[idx:] + } else { + tmpPath = ":6080"+tmpPath + } + c.Header("Access-Control-Allow-Origin","*") + logger.Debug("domain+tmpPath:",domain+tmpPath) + c.Redirect(http.StatusMovedPermanently, domain+tmpPath) + return + } else { + c.Next() + } + } +} + +func GetCurUser(c *gin.Context)map[string]interface{}{ + return (*GenerateAuthDriver()).User(c).(map[string]interface{}) +} \ No newline at end of file -- Gitblit v1.8.0