Parcourir la source

Merge branch 'mazq-0823' into 'release/v2.4.0'

feature(报错修改): 报错修改

See merge request dcuc-tjdsj/auth-back!87
马志强 il y a 3 ans
Parent
commit
20ac41312f

+ 21 - 0
src/main/java/com/dragoninfo/dcuc/authweb/interceptor/SecurityAccessTokenResolver.java

@@ -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;