gonglilong
2024-06-13 50ba5d0c1147a2361b60b46d7895106733896e09
还原
1 files modified
34 ■■■■ changed files
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java 34 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
@@ -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("获取密钥失败");
//            }
//
//            //解码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("用户信息异常,请联系管理员");
//            }
            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("用户信息异常,请联系管理员");
            }
            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),