|
@@ -11,6 +11,7 @@ import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
|
|
|
import com.dragonsoft.duceap.base.entity.security.SecurityUser;
|
|
|
import com.dragonsoft.duceap.commons.util.UrlMatcher;
|
|
|
import com.dragonsoft.duceap.commons.util.json.JsonUtils;
|
|
|
+import com.dragonsoft.duceap.security.jwt.SecurityUserCacheResolver;
|
|
|
import com.dragonsoft.duceap.security.jwt.securityaccess.SecurityAccessTokenProperties;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -30,6 +31,9 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
|
|
|
@Autowired
|
|
|
private SecurityAccessTokenProperties secAccessProp;
|
|
|
|
|
|
+ @Autowired(required = false)
|
|
|
+ private SecurityUserCacheResolver cacheResolver;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IBimBusinessFacade bimBusinessFacade;
|
|
|
|
|
@@ -68,12 +72,24 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
|
|
|
|
|
|
log.info("userToken:{},appToken:{}", userToken, appToken);
|
|
|
|
|
|
+ if (cacheResolver != null) {
|
|
|
+ //从缓存中取
|
|
|
+ SecurityUser securityUserCache = (SecurityUser) cacheResolver.getIfPresent(userToken);
|
|
|
+
|
|
|
+ if (securityUserCache != null) {
|
|
|
+ log.info("Cache securityUserCache:{}", JsonUtils.toJSONString(securityUserCache));
|
|
|
+
|
|
|
+ return securityUserCache;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (StrUtil.isBlank(userToken)) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
BimUserInfoItemRespVO userInfoItemRespVO = bimBusinessFacade.getUserInfoByUserToken(userToken);
|
|
|
String sfzh = userInfoItemRespVO.getSfzh();
|
|
|
+
|
|
|
UserInfo userInfo = userFacade.detailBySfzh(sfzh);
|
|
|
log.info("idcard:{}, userInfo :{}", sfzh, JsonUtils.toJSONString(userInfo));
|
|
|
|
|
@@ -86,6 +102,11 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
|
|
|
securityUser.setSecurityOrg(userInfo.getOrgCode());
|
|
|
securityUser.setSecurityOrgName(userInfo.getOrgName());
|
|
|
|
|
|
+ //放入缓存
|
|
|
+ if (cacheResolver != null) {
|
|
|
+ cacheResolver.put(userToken, securityUser);
|
|
|
+ }
|
|
|
+
|
|
|
log.info("return idcard:{}, securityUser :{}", sfzh, JsonUtils.toJSONString(securityUser));
|
|
|
|
|
|
return securityUser;
|