diff --git a/dsDataex/MyReport/ESSql/ESSqlOpenapi/ESSqlOpenapi.go b/dsDataex/MyReport/ESSql/ESSqlOpenapi/ESSqlOpenapi.go index 92e8c5fa..c87afced 100644 --- a/dsDataex/MyReport/ESSql/ESSqlOpenapi/ESSqlOpenapi.go +++ b/dsDataex/MyReport/ESSql/ESSqlOpenapi/ESSqlOpenapi.go @@ -44,8 +44,8 @@ func QuerySimple(c *gin.Context) { flag,_,systemID:=AuthService.CheckAccessToken(temp[0],temp[1],temp[2]) if flag==false { - //c.JSON(http.StatusOK, MySwagger.DataResult{Success: false,Message: "接入系统票据不正确"}) - //return + c.JSON(http.StatusOK, MySwagger.DataResult{Success: false,Message: "接入系统票据不正确"}) + return } flag2,_ := DataexService.CheckDatasourceSql(systemID,input.Query.QueryID) @@ -109,8 +109,8 @@ func QueryJoin(c *gin.Context) { flag,_,systemID:=AuthService.CheckAccessToken(temp[0],temp[1],temp[2]) if flag==false { - //c.JSON(http.StatusOK, MySwagger.DataResult{Success: false,Message: "接入系统票据不正确"}) - //return + c.JSON(http.StatusOK, MySwagger.DataResult{Success: false,Message: "接入系统票据不正确"}) + return } flag2,_ := DataexService.CheckDatasourceSql(systemID,input.Query.QueryID) diff --git a/dsDataex/MyService/Auth/AuthService/AuthService.go b/dsDataex/MyService/Auth/AuthService/AuthService.go index a45e282b..fe6722a0 100644 --- a/dsDataex/MyService/Auth/AuthService/AuthService.go +++ b/dsDataex/MyService/Auth/AuthService/AuthService.go @@ -83,16 +83,20 @@ func CheckAccessToken(systemID string,accessTime string,accessToken string) (boo return false,result,"" }else { - myToken:= data["auth_token"].(string) + if data["auth_token"] != nil { + myToken:= data["auth_token"].(string) - var testToken=MD5Util.MD5V1(systemID + accessTime + myToken) + var testToken=MD5Util.MD5V1(systemID + accessTime + myToken) - if testToken==accessToken{ + if testToken==accessToken{ - return true,"接入系统票据验证成功",data["id"].(string) - }else { + return true,"接入系统票据验证成功",data["id"].(string) + }else { - return false,"接入系统票据验证失败",data["id"].(string) + return false,"接入系统票据验证失败","" + } + } else { + return false,"接入系统票据验证失败","" } } } \ No newline at end of file diff --git a/dsSupport/Config/Config.ini b/dsSupport/Config/Config.ini index bfedf7e8..247a087b 100644 --- a/dsSupport/Config/Config.ini +++ b/dsSupport/Config/Config.ini @@ -7,27 +7,36 @@ remotePath = /usr/local/dsMin/dsSupport/ localPath = E:/Work/dsMin/dsSupport [mysql] -ip = 10.10.14.187 +ip = 10.10.6.200 port = 22066 -database = base_db_dev +database = base_db_zhangjun user = root pwd = DsideaL147258369 +;ip = 10.10.14.187 +;port = 22066 +;database = base_db_dev +;user = root +;pwd = DsideaL147258369 [redis] -ip = 10.10.14.187 -port = 18890 -db = 0 +ip = 127.0.0.1 +port = 6379 +db = 1 expireTime = 86400 +;ip = 10.10.14.187 +;port = 18890 +;db = 0 +;expireTime = 86400 #gin服务器的端口 [server] port = 8005 [elasticsearch] -nodes = http://10.10.14.188:9200 +;nodes = http://10.10.14.188:9200 ##nodes = http://10.10.14.61:9200,http://10.10.14.62:9200,http://10.10.14.63:9200 ##nodes = http://192.168.0.200:9200,http://192.168.0.200:9201,http://192.168.0.200:9202 -;nodes = http://10.10.14.61:9200,http://10.10.14.62:9200,http://10.10.14.63:9200 +nodes = http://10.10.14.61:9200,http://10.10.14.62:9200,http://10.10.14.63:9200 ;http://10.10.14.188:9200, ;nodes = http://192.168.0.200:9200,http://192.168.0.200:9201,http://192.168.0.200:9202 user = root diff --git a/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go b/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go index 3f5dc18f..f7361b7f 100644 --- a/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go +++ b/dsSupport/MyModel/Account/AccountDAO/AccountDAO.go @@ -12,6 +12,8 @@ package AccountDAO import ( "dsSupport/Utils/ConfigUtil" "dsSupport/Utils/DbUtil" + "fmt" + "html" "strings" ) @@ -58,3 +60,34 @@ func CurrentUser(username string) (bool, string) { return flag, msg } +/** + * @Author zhangjun + * @Description + * @Date 2020-06-12 09:40 + * @Param code string 接入系统code + * @return bool 成功/失败 + * @return string 结果说明 + * @return map 数据 + * @return error 异常 + **/ +func GetbyCode(code string) (bool, string, map[string]interface{}, error){ + sql := "SELECT * from t_dataex_linksystem where delete_flag = -1 and enable_flag = 1 and system_code = '" + html.EscapeString(code) + "'" + + var limit = 100 + var offset = 0 + + //条件查询语句 + conditionSql := fmt.Sprintf("%s", " limit ? offset ? ") + //分页的语句 + pageSql := fmt.Sprintf("%s %s", sql, conditionSql) + //数据条数 + count, _ := DbUtil.Engine.SQL(sql).Query().Count() + //分页数据 + list, _ := DbUtil.Engine.SQL(pageSql, limit, offset).Query().List() + if count==1 { + return true, "数据获取成功", list[0],nil + }else { + return false, "接入系统数据获取失败,systemID不存在", nil,nil + } +} + diff --git a/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go b/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go index 6818005d..8b05e870 100644 --- a/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go +++ b/dsSupport/MyModel/Account/AccountOpenAPI/AccountOpenAPI.go @@ -16,6 +16,7 @@ import ( "fmt" "github.com/gin-gonic/gin" "net/http" + "time" ) var globalSessions *SessionUtil.Manager @@ -72,34 +73,40 @@ func Login(c *gin.Context) { var r *http.Request = c.Request sess := globalSessions.SessionStart(w, r) - val := sess.Get("username") - if val != nil { - fmt.Println(val) - } else { - username := raw.Username - password := raw.Password - - success, _ := AccountService.Login(username, password) - if success { - sess.Set("username", username) - fmt.Println("set session") - c.JSON(http.StatusOK, gin.H{ - "status" : "ok", - "type" : "account", - "currentAuthority" : username, - }) - - return - } else { - c.JSON(http.StatusOK, gin.H{ - "status" : "error", - "type" : "account", - "currentAuthority" : "guest", - }) - - return + //val := sess.Get("username") + //if val != nil { + // fmt.Println(val) + //} else { + // + //} + + username := raw.Username + password := raw.Password + + success, _ := AccountService.Login(username, password) + if success { + sess.Set("username", username) + fmt.Println("set session") + + s, _, accessToken := AccountService.CreateAccessToken("TEST_009", time.Now().Format("200601021504")) + if s == true { + c.SetCookie("access_token", accessToken, 3600 * 8, "/", "", false, true) } + c.JSON(http.StatusOK, gin.H{ + "status" : "ok", + "type" : "account", + "currentAuthority" : username, + }) + + return + } else { + c.JSON(http.StatusOK, gin.H{ + "status" : "error", + "type" : "account", + "currentAuthority" : "guest", + }) + return } return diff --git a/dsSupport/MyModel/Account/AccountService/AccountService.go b/dsSupport/MyModel/Account/AccountService/AccountService.go index 18b2259e..6f1fd4d5 100644 --- a/dsSupport/MyModel/Account/AccountService/AccountService.go +++ b/dsSupport/MyModel/Account/AccountService/AccountService.go @@ -11,6 +11,7 @@ package AccountService import ( "dsSupport/MyModel/Account/AccountDAO" + "dsSupport/Utils/MD5Util" ) func Login(username string, password string) (bool, string) { @@ -26,3 +27,23 @@ func CurrentUser() (bool, string) { return result, message } +func CreateAccessToken(systemID string, accessTime string) (bool, string, string) { + success,result,data,_:= AccountDAO.GetbyCode(systemID) + + if success==false{ + + return false,result,"" + } else { + if data["auth_token"] != nil { + authToken:= data["auth_token"].(string) + + var accessToken = MD5Util.MD5V1(systemID + accessTime + authToken) + + return true,"AccessToken生成成功",accessToken + } else { + return false,"","" + } + } + + return true,"","" +} diff --git a/dsSupport/Utils/MD5Util/MD5Util.go b/dsSupport/Utils/MD5Util/MD5Util.go new file mode 100644 index 00000000..58b7af98 --- /dev/null +++ b/dsSupport/Utils/MD5Util/MD5Util.go @@ -0,0 +1,28 @@ +package MD5Util + +import ( + "crypto/md5" + "encoding/hex" + "fmt" + "io" +) + +func MD5V1(str string) string { + h := md5.New() + h.Write([]byte(str)) + return hex.EncodeToString(h.Sum(nil)) +} + +func MD5V2(str string) string { + data := []byte(str) + has := md5.Sum(data) + md5str := fmt.Sprintf("%x", has) + return md5str +} + +func MD5V3(str string) string { + w := md5.New() + io.WriteString(w, str) + md5str := fmt.Sprintf("%x", w.Sum(nil)) + return md5str +} \ No newline at end of file