Ver Fonte

Merge branch 'mazq-jiekouyouhua-230523' into 'release/v1.2.0'

Mazq jiekouyouhua 230523

See merge request dcuc-tjdsj/auth-back!167
马志强 há 1 ano atrás
pai
commit
82b539eb27

+ 20 - 17
src/main/java/com/dragoninfo/dcuc/authweb/interceptor/SecurityAccessTokenResolver.java

@@ -4,28 +4,25 @@ import cn.hutool.core.util.StrUtil;
 import com.dragoninfo.dcuc.auth.auth.facade.IBimBusinessFacade;
 import com.dragoninfo.dcuc.auth.auth.vo.bim.BimUserInfoItemRespVO;
 import com.dragoninfo.dcuc.auth.sub.dto.AuthUserContactDTO;
-import com.dragoninfo.dcuc.auth.sub.dto.AuthUserDTO;
-import com.dragoninfo.dcuc.auth.sub.dto.DcucUserInfo;
 import com.dragoninfo.dcuc.auth.sub.facade.IAuthUserInfoFacade;
-import com.dragoninfo.dcuc.auth.sub.facade.IUserCenterApiFacade;
-import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
-import com.dragoninfo.dcuc.common.Constants;
+import com.dragoninfo.dcuc.authweb.util.HeadTokenUtils;
+import com.dragoninfo.dcuc.common.enums.UserExtInfoEnum;
 import com.dragonsoft.duceap.base.api.security.ISecurityAccessTokenResolver;
 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.commons.util.string.StringUtils;
-import com.dragonsoft.duceap.security.dcuc.entity.DcucUser;
 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;
 import org.springframework.boot.autoconfigure.web.ServerProperties;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author huangzqa
@@ -74,10 +71,14 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
             return null;
         }
 
-        String userToken = request.getHeader(secAccessProp.getUserTokenHeaderName());
-        String appToken = request.getHeader(Constants.APP_TOKEN);
+        String userToken = HeadTokenUtils.getUserToken(request);
+        String appToken = HeadTokenUtils.getAppToken(request);
 
-        log.info("userToken:{},appToken:{}", userToken, appToken);
+        log.info("用户令牌id:{} , 应用令牌id:{}", userToken, appToken);
+        if (StrUtil.isBlank(userToken)) {
+            log.error("用户令牌为空");
+            return null;
+        }
 
         if (cacheResolver != null) {
             //从缓存中取
@@ -90,15 +91,11 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
             }
         }
 
-        if (StrUtil.isBlank(userToken)) {
-            return null;
-        }
-
         BimUserInfoItemRespVO userInfoItemRespVO = bimBusinessFacade.getUserInfoByUserToken(userToken);
         String sfzh = userInfoItemRespVO.getSfzh();
+        log.info("认证结果返回人员身份证号:{}, ", sfzh);
 
         AuthUserContactDTO userInfo = authUserInfoFacade.getUserWithContactByIdcard(sfzh);
-        log.info("idcard:{}, userInfo :{}", sfzh, JsonUtils.toJSONString(userInfo));
 
         SecurityUser securityUser = new SecurityUser();
         securityUser.setId(userInfo.getId());
@@ -118,15 +115,21 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
         securityUser.setEmail(userInfo.getEmail());
         securityUser.setQq(userInfo.getQqAccount());
         securityUser.setWechat(userInfo.getWxAccount());
+        securityUser.setUserType(userInfo.getUserType());
         securityUser.setSecurityOrgs(new String[]{userInfo.getOrgCode()});
-        log.info("idcard:{}, userInfo :{}", sfzh, JsonUtils.toJSONString(userInfo));
+        // 设置令牌扩展信息
+        Map<String, Object> map = new HashMap<>(UserExtInfoEnum.values().length);
+        map.put(UserExtInfoEnum.USER_TOKEN_ID.getValue(), userToken);
+        map.put(UserExtInfoEnum.APP_TOKEN_ID.getValue(), appToken);
+        securityUser.setExtendtions(map);
+        log.info("人员身份证号:{}, 人员信息:{}", sfzh, JsonUtils.toJSONString(userInfo));
 
         //放入缓存
         if (cacheResolver != null) {
             cacheResolver.put(userToken, securityUser);
         }
 
-        log.info("return idcard:{}, securityUser :{}", sfzh, JsonUtils.toJSONString(securityUser));
+        log.info("返回人员身份证号:{}, 登录人员信息:{}", sfzh, JsonUtils.toJSONString(securityUser));
 
         return securityUser;
     }

+ 3 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/RoleInfoController.java

@@ -121,6 +121,9 @@ public class RoleInfoController {
     @GetMapping(value = "/role/{id}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public Result<RoleInfoVo> roleInfo(@PathVariable("id") String id) {
         RoleInfo roleInfo = roleInfoFacade.get(id);
+        if (null == roleInfo) {
+            return Result.failMessage("角色不存在");
+        }
         RoleInfoVo vo = new RoleInfoVo();
         BeanUtils.copyProperties(roleInfo, vo);
         return Result.success(vo);

+ 9 - 7
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/login/DcucLoginController.java

@@ -8,11 +8,11 @@ import com.dragoninfo.dcuc.auth.auth.facade.IRoleFacade;
 import com.dragoninfo.dcuc.auth.sub.dto.AuthUserContactDTO;
 import com.dragoninfo.dcuc.auth.sub.facade.IAuthUserInfoFacade;
 import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
+import com.dragoninfo.dcuc.authweb.util.HeadTokenUtils;
 import com.dragoninfo.dcuc.common.enums.UserExtInfoEnum;
 import com.dragonsoft.duceap.base.entity.security.SecurityRight;
 import com.dragonsoft.duceap.base.entity.security.SecurityUser;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
-import com.dragonsoft.duceap.commons.util.UUIDUtils;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
 import com.dragonsoft.duceap.commons.util.json.JsonUtils;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
@@ -20,10 +20,10 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -52,9 +52,11 @@ public class DcucLoginController {
     }
 
     @GetMapping(value = "/info")
-    public SecurityUser info(@RequestHeader(value = "userToken", required = false) String userToken,
-                             @RequestHeader(value = "appToken", required = false) String appToken) {
-        logger.info("UserToken:{},appToken:{}", userToken, appToken);
+    public SecurityUser info(HttpServletRequest request) {
+
+        String userToken = HeadTokenUtils.getUserToken(request);
+        String appToken = HeadTokenUtils.getAppToken(request);
+        logger.info("用户令牌id:{} , 应用令牌id:{}", userToken, appToken);
         try {
             SecurityUser securityUser = UserContextUtils.getCurrentUser();
             String idcard = securityUser.getIdcard();
@@ -66,13 +68,13 @@ public class DcucLoginController {
             securityUser.setManId(userInfo.getId());
             securityUser.setDeptId(userInfo.getOrgId());
             securityUser.setSecurityOrg(userInfo.getOrgCode());
+            securityUser.setUserType(userInfo.getUserType());
             securityUser.setMobile(StringUtils.isBlank(userInfo.getMobileWork()) ? userInfo.getMobilePrivate() : userInfo.getMobileWork());
             List<SecurityRight> authmenu = getAuthmenu(securityUser);
             securityUser.setSecurityRightList(authmenu);
 
             Map<String, Object> map = new HashMap<>(UserExtInfoEnum.values().length);
-//            map.put(UserExtInfoEnum.USER_TOKEN_ID.getValue(), UUIDUtils.getUUID());
-//            map.put(UserExtInfoEnum.APP_TOKEN_ID.getValue(), UUIDUtils.getUUID());
+
             map.put(UserExtInfoEnum.USER_TOKEN_ID.getValue(), userToken);
             map.put(UserExtInfoEnum.APP_TOKEN_ID.getValue(), appToken);
             securityUser.setExtendtions(map);

+ 9 - 0
src/main/java/com/dragoninfo/dcuc/authweb/util/HeadTokenUtils.java

@@ -57,6 +57,11 @@ public class HeadTokenUtils {
             userToken = request.getHeader(Constants.USER_TOKEN);
         }
 
+        if (StrUtil.isBlank(userToken)) {
+            userToken = request.getHeader(Constants.RZZX_USERTOKEN);
+        }
+
+
         return userToken;
     }
 
@@ -72,6 +77,10 @@ public class HeadTokenUtils {
             appToken = request.getHeader(Constants.APP_TOKEN);
         }
 
+        if (StrUtil.isBlank(appToken)) {
+            appToken = request.getHeader(Constants.RZZX_APPTOKEN);
+        }
+
         return appToken;
     }
 }