ke
2024-05-13 659d3e60c6fe5e5bcd8c4cbb3dd8077e29f13a38
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
@@ -20,7 +20,7 @@
import cn.gistack.common.utils.Base64Utils;
import cn.gistack.pwd.dto.CBCResultDTO;
import cn.gistack.pwd.dto.ResultDTO;
//import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.sm.collect.feign.ICollectClient;
import cn.gistack.sm.collect.feign.ICollectClientFallback;
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
@@ -78,7 +78,7 @@
   private final ICollectClient collectClient;
//   private final IPwdClient pwdClient;
   private final IPwdClient pwdClient;
   @Override
   @SneakyThrows
@@ -206,23 +206,23 @@
         User loginUserInfo = userInfo.getUser();
         //获取解密后的Base64字符串
//         R<ResultDTO> encryptRes = pwdClient.getDecrypt(loginUserInfo.getSm4iv(), loginUserInfo.getKeyindexs(),loginUserInfo.getEncdata());
//
//         if (encryptRes.getCode() != 200){
//            throw new UserDeniedAuthorizationException("获取密钥失败");
//         }
         R<ResultDTO> encryptRes = pwdClient.getDecrypt(loginUserInfo.getSm4iv(), loginUserInfo.getKeyindexs(),loginUserInfo.getEncdata());
         if (encryptRes.getCode() != 200){
            throw new UserDeniedAuthorizationException("获取密钥失败");
         }
         //解码Base64
//         String JSONstr = Base64Utils.getBase64Decode(encryptRes.getData().getData());
//
//         pwdClient.verify(loginUserInfo.getMaced(),loginUserInfo.getSm4iv(),loginUserInfo.getKeyindexs(),JSONstr,loginUserInfo.getId().toString(),"blade_user");
//
//         UserSUPO userSUPO = JSONObject.parseObject(JSONstr, UserSUPO.class);
//
//         //若登录用户的电话、角色、部门与原加密数据不符,登录失败
//         if (!(loginUserInfo.getPhone().equals(userSUPO.getPhone())  && loginUserInfo.getRoleId().equals(userSUPO.getRoleId())  && loginUserInfo.getDeptId().equals(userSUPO.getDeptId())) ){
//            throw new UserDeniedAuthorizationException("用户信息异常,请联系管理员");
//         }
         String JSONstr = Base64Utils.getBase64Decode(encryptRes.getData().getData());
         pwdClient.verify(loginUserInfo.getMaced(),loginUserInfo.getSm4iv(),loginUserInfo.getKeyindexs(),JSONstr,loginUserInfo.getId().toString(),"blade_user");
         UserSUPO userSUPO = JSONObject.parseObject(JSONstr, UserSUPO.class);
         //若登录用户的电话、角色、部门与原加密数据不符,登录失败
         if (!(loginUserInfo.getPhone().equals(userSUPO.getPhone())  && loginUserInfo.getRoleId().equals(userSUPO.getRoleId())  && loginUserInfo.getDeptId().equals(userSUPO.getDeptId())) ){
            throw new UserDeniedAuthorizationException("用户信息异常,请联系管理员");
         }
         return new BladeUserDetails(user.getId(),
            user.getTenantId(), StringPool.EMPTY, user.getName(), user.getRealName(), user.getDeptId(), user.getPostId(), user.getRoleId(), Func.join(userInfo.getRoles()), Func.toStr(user.getAvatar(), TokenUtil.DEFAULT_AVATAR),