summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author刘永强 <[email protected]>2020-08-27 20:23:01 +0800
committer刘永强 <[email protected]>2020-08-27 20:23:01 +0800
commita3a15a906fa230bb29ed3249ab00258ac5352cc1 (patch)
tree1e1206d8f6176a092251c9d39d7439cfcb3be51b
parent3aaf25de8317eb4b217d24588b0d998439fded87 (diff)
解决ArangoDB在服务重启后,缓存中的Token失效的问题
-rw-r--r--galaxy-auth-center/config/application-dev.properties4
-rw-r--r--galaxy-auth-center/config/application-prod.properties4
-rw-r--r--galaxy-auth-center/src/main/java/com/mesalab/auth/service/impl/AuthorizeServiceImpl.java37
-rw-r--r--galaxy-data-engine/config/application-dev.properties4
-rw-r--r--galaxy-data-engine/config/application-prod.properties4
5 files changed, 29 insertions, 24 deletions
diff --git a/galaxy-auth-center/config/application-dev.properties b/galaxy-auth-center/config/application-dev.properties
index 1d72605..7596835 100644
--- a/galaxy-auth-center/config/application-dev.properties
+++ b/galaxy-auth-center/config/application-dev.properties
@@ -22,6 +22,6 @@ arango.username=query
#Arango密码
arango.password=ceiec2018
#ArangoJWT授权地址
-arango.authurl=http://192.168.44.12:8529/_db/ip-learning-test/_open/auth
+arango.authurl=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_open/auth
#Arango数据查询地址
-arango.query.url=http://192.168.40.182:8529/_db/ip-learning-test/_api/cursor \ No newline at end of file
+arango.query.url=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_api/cursor \ No newline at end of file
diff --git a/galaxy-auth-center/config/application-prod.properties b/galaxy-auth-center/config/application-prod.properties
index 1d72605..7596835 100644
--- a/galaxy-auth-center/config/application-prod.properties
+++ b/galaxy-auth-center/config/application-prod.properties
@@ -22,6 +22,6 @@ arango.username=query
#Arango密码
arango.password=ceiec2018
#ArangoJWT授权地址
-arango.authurl=http://192.168.44.12:8529/_db/ip-learning-test/_open/auth
+arango.authurl=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_open/auth
#Arango数据查询地址
-arango.query.url=http://192.168.40.182:8529/_db/ip-learning-test/_api/cursor \ No newline at end of file
+arango.query.url=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_api/cursor \ No newline at end of file
diff --git a/galaxy-auth-center/src/main/java/com/mesalab/auth/service/impl/AuthorizeServiceImpl.java b/galaxy-auth-center/src/main/java/com/mesalab/auth/service/impl/AuthorizeServiceImpl.java
index f233a0b..7c768fe 100644
--- a/galaxy-auth-center/src/main/java/com/mesalab/auth/service/impl/AuthorizeServiceImpl.java
+++ b/galaxy-auth-center/src/main/java/com/mesalab/auth/service/impl/AuthorizeServiceImpl.java
@@ -5,7 +5,6 @@ import com.google.gson.Gson;
import com.mesalab.auth.component.config.ArangoConfig;
import com.mesalab.auth.service.AuthorizeService;
import com.mesalab.common.annotation.SysLog;
-import com.mesalab.common.dto.results.ArangoCursorResult;
import com.mesalab.common.enums.CacheKeyEnum;
import com.mesalab.common.exception.BusinessException;
import com.mesalab.common.util.HttpClientUtil;
@@ -16,7 +15,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
@@ -50,12 +48,12 @@ public class AuthorizeServiceImpl implements AuthorizeService {
String cacheKey = CacheKeyEnum.ARONGO_JWT_KEY.getKey();
Object cacheVal = MemoryCache.getInstance().get(cacheKey);
- log.info("从缓存中获取的Token为:{}",cacheVal);
- if(Objects.nonNull(cacheVal)){
- if(tokenValidate(String.valueOf(cacheVal))){
+ log.info("从缓存中获取的Token为:{}", cacheVal);
+ if (Objects.nonNull(cacheVal)) {
+ if (tokenValidate(String.valueOf(cacheVal))) {
log.info("从缓存中获取的Token未失效!");
return String.valueOf(cacheVal);
- }else{
+ } else {
log.info("从缓存中获取的Token已失效!");
}
}
@@ -66,14 +64,14 @@ public class AuthorizeServiceImpl implements AuthorizeService {
String jwtStr;
try {
- String jsonRes = HttpClientUtil.httpPost(arangoConfig.getAuthUrl(),new Gson().toJson(params));
- params = new Gson().fromJson(jsonRes,Map.class);
+ String jsonRes = HttpClientUtil.httpPost(arangoConfig.getAuthUrl(), new Gson().toJson(params));
+ params = new Gson().fromJson(jsonRes, Map.class);
jwtStr = params.get(SysConstant.ARANGO_JWT_STR);
- log.info("请求arango授权接口获取的jwt:{}",jwtStr);
+ log.info("请求arango授权接口获取的jwt:{}", jwtStr);
//将jwt字符串做缓存处理,过期时间为7天
- MemoryCache.getInstance().put(cacheKey,jwtStr,604800);
+ MemoryCache.getInstance().put(cacheKey, jwtStr, 604800);
} catch (BusinessException e) {
- log.info("请求arango授权接口发生异常,异常信息:{}",e.getMessage());
+ log.info("请求arango授权接口发生异常,异常信息:{}", e.getMessage());
throw new BusinessException(e.getMessage());
}
@@ -81,20 +79,27 @@ public class AuthorizeServiceImpl implements AuthorizeService {
}
/**
+ * @param token:
* @Description: 验证ArangoJwtToken是否有效
* @Author: liuyongqiang
* @Date: 2020/8/27 18:07
- * @param token:
* @return: boolean
**/
@Override
public boolean tokenValidate(String token) throws BusinessException {
- Map queryMap = ImmutableMap.of("query","");
+ Map queryMap = ImmutableMap.of("query", "");
String jwtStr = SysConstant.ARANGO_JWT_PRE.concat(token);
Header header = new BasicHeader(HttpHeaders.AUTHORIZATION, jwtStr);
- String res = HttpClientUtil.httpPost(arangoConfig.getQueryurl(),new Gson().toJson(queryMap), header);
- ArangoCursorResult result = new Gson().fromJson(res,ArangoCursorResult.class);
- return result.getErrorNum()!=11;//errorNum为11代表token失效
+ try {
+ HttpClientUtil.httpPost(arangoConfig.getQueryurl(), JsonMapper.toJsonString(queryMap), header);
+ } catch (BusinessException e) {
+ if (e.getErrorMessage() != null && e.getErrorMessage().contains("not authorized to execute this request")) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ return true;
}
}
diff --git a/galaxy-data-engine/config/application-dev.properties b/galaxy-data-engine/config/application-dev.properties
index d0634e5..d244b1e 100644
--- a/galaxy-data-engine/config/application-dev.properties
+++ b/galaxy-data-engine/config/application-dev.properties
@@ -42,8 +42,8 @@ druid.sqlTimeZone=Asia/Shanghai
#arango数据库相关配置
arango.maxrows=10000
arango.login=http://galaxy-auth-center/authorize/arangoJwtLogin
-arango.query.url=http://192.168.40.182:8529/_db/ip-learning-test/_api/cursor
-arango.collection=http://192.168.40.182:8529/_db/ip-learning-test/_api/collection
+arango.query.url=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_api/cursor
+arango.collection=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_api/collection
#clickhouse数据库相关配置
clickhouse.query.url=http://192.168.44.12:8123
clickhouse.dbname=tsg_galaxy_v3
diff --git a/galaxy-data-engine/config/application-prod.properties b/galaxy-data-engine/config/application-prod.properties
index d0634e5..d244b1e 100644
--- a/galaxy-data-engine/config/application-prod.properties
+++ b/galaxy-data-engine/config/application-prod.properties
@@ -42,8 +42,8 @@ druid.sqlTimeZone=Asia/Shanghai
#arango数据库相关配置
arango.maxrows=10000
arango.login=http://galaxy-auth-center/authorize/arangoJwtLogin
-arango.query.url=http://192.168.40.182:8529/_db/ip-learning-test/_api/cursor
-arango.collection=http://192.168.40.182:8529/_db/ip-learning-test/_api/collection
+arango.query.url=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_api/cursor
+arango.collection=http://192.168.44.12:8529/_db/tsg_galaxy_v3/_api/collection
#clickhouse数据库相关配置
clickhouse.query.url=http://192.168.44.12:8123
clickhouse.dbname=tsg_galaxy_v3