From dc590d026e1130a98c70181fb65f8ed09414e787 Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期五, 14 七月 2023 17:48:11 +0800 Subject: [PATCH] 1、主要解决获取当前用户信息等问题,使用AuthUtil来进行获取,对生成token等信息进行了修改增加。 --- Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java | 1 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java | 4 ++ Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/VciSystemVarConstants.java | 37 +++++++++--------- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 2 + Source/BladeX-Tool/blade-starter-auth/src/main/java/org/springblade/core/secure/utils/AuthUtil.java | 8 ++++ Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java | 2 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/support/BladeJwtTokenEnhancer.java | 4 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java | 9 +++- Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetails.java | 17 ++++++++ Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java | 5 ++ 10 files changed, 66 insertions(+), 23 deletions(-) diff --git a/Source/BladeX-Tool/blade-starter-auth/src/main/java/org/springblade/core/secure/utils/AuthUtil.java b/Source/BladeX-Tool/blade-starter-auth/src/main/java/org/springblade/core/secure/utils/AuthUtil.java index 04187c4..58d9a9b 100644 --- a/Source/BladeX-Tool/blade-starter-auth/src/main/java/org/springblade/core/secure/utils/AuthUtil.java +++ b/Source/BladeX-Tool/blade-starter-auth/src/main/java/org/springblade/core/secure/utils/AuthUtil.java @@ -110,6 +110,10 @@ String roleName = Func.toStr(claims.get(AuthUtil.ROLE_NAME)); String userName = Func.toStr(claims.get(AuthUtil.USER_NAME)); String nickName = Func.toStr(claims.get(AuthUtil.NICK_NAME)); + String tenantName = Func.toStr(claims.get("tenantName")); + String email = Func.toStr(claims.get("email")); + String deptName = Func.toStr(claims.get("deptName")); + String secretGrade = Func.toStr(claims.get("secretGrade")); Kv detail = Kv.create().setAll((Map<? extends String, ?>) claims.get(AuthUtil.DETAIL)); BladeUser bladeUser = new BladeUser(); bladeUser.setClientId(clientId); @@ -123,6 +127,10 @@ bladeUser.setRoleName(roleName); bladeUser.setUserName(userName); bladeUser.setNickName(nickName); + detail.put("tenantName",tenantName); + detail.put("deptName",deptName); + detail.put("email",email); + detail.put("secretGrade",secretGrade); bladeUser.setDetail(detail); return bladeUser; } diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetails.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetails.java index e3bb798..42e295f 100644 --- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetails.java +++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetails.java @@ -40,6 +40,10 @@ */ private final String tenantId; /** + * 绉熸埛鍚嶇О + */ + private String tenantName; + /** * 绗笁鏂硅璇両D */ private final String oauthId; @@ -59,6 +63,10 @@ * 閮ㄩ棬id */ private final String deptId; + /** + * 閮ㄩ棬鍚嶇О + */ + private String deptName; /** * 宀椾綅id */ @@ -84,6 +92,10 @@ * 鐢ㄦ埛瀵嗙骇 */ private String secretGrade; + /** + * 閭欢 + */ + private String email; /** * 瀵嗙爜绛栫暐淇敼鐘舵�� @@ -91,7 +103,7 @@ private Long strategyUpdateStatus; - public BladeUserDetails(Long userId, String tenantId, String oauthId, String name, String realName, String deptId, String postId, String roleId, String roleName, String avatar, String username, String password, Kv detail,String secretGrade, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities,Long strategyUpdateStatus) { + public BladeUserDetails(Long userId, String tenantId, String oauthId, String name, String realName, String deptId, String postId, String roleId, String roleName, String avatar, String username, String password, Kv detail,String secretGrade, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities,Long strategyUpdateStatus,String tenantName,String deptName,String email) { super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities); this.userId = userId; this.tenantId = tenantId; @@ -107,6 +119,9 @@ this.detail = detail; this.secretGrade = secretGrade; this.strategyUpdateStatus = strategyUpdateStatus; + this.tenantName = tenantName; + this.deptName = deptName; + this.email = email; } public BladeUserDetails(Long userId, String tenantId, String oauthId, String name, String realName, String deptId, String postId, String roleId, String roleName, String avatar, String username, String password, Kv detail, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) { diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java index c2c2147..11294a7 100644 --- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java +++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java @@ -221,7 +221,7 @@ BladeUserDetails bladeUserDetails = 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), username, AuthConstant.ENCRYPT + user.getPassword(), userInfo.getDetail(),user.getSecretGrade(), true, true, true, true, - AuthorityUtils.commaSeparatedStringToAuthorityList(Func.join(result.getData().getRoles())),user.getStrategyUpdateStatus()); + AuthorityUtils.commaSeparatedStringToAuthorityList(Func.join(result.getData().getRoles())),user.getStrategyUpdateStatus(),tenant.getData().getTenantName(),user.getDeptName(),user.getEmail()); return bladeUserDetails; } else { throw new UsernameNotFoundException(result.getMsg()); diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/support/BladeJwtTokenEnhancer.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/support/BladeJwtTokenEnhancer.java index 9d625aa..4bf7020 100644 --- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/support/BladeJwtTokenEnhancer.java +++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/support/BladeJwtTokenEnhancer.java @@ -65,6 +65,10 @@ info.put(TokenUtil.DETAIL, principal.getDetail()); info.put(TokenUtil.LICENSE, TokenUtil.LICENSE_NAME); info.put(TokenUtil.STRATEGYUPDATESTATUS, principal.getStrategyUpdateStatus()); + info.put(TokenUtil.TENANTNAME, principal.getTenantName()); + info.put(TokenUtil.DEPTNAME, principal.getDeptName()); + info.put(TokenUtil.EMAIL, principal.getEmail()); + info.put(TokenUtil.SECRETGRADE, principal.getSecretGrade()); ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(info); //token鐘舵�佽缃� diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java index 386b7bc..b24bd0b 100644 --- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java +++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/utils/TokenUtil.java @@ -54,6 +54,10 @@ public final static String LICENSE = TokenConstant.LICENSE; public final static String LICENSE_NAME = TokenConstant.LICENSE_NAME; public final static String STRATEGYUPDATESTATUS = "strategyUpdateStatus"; + public final static String TENANTNAME = "tenantName"; + public final static String DEPTNAME = "deptName"; + public final static String EMAIL = "email"; + public final static String SECRETGRADE = "secretGrade"; public final static String DEPT_HEADER_KEY = "Dept-Id"; public final static String ROLE_HEADER_KEY = "Role-Id"; diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java index a1df16b..8321e6c 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java +++ b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java @@ -89,6 +89,11 @@ */ private String deptId; /** + * 閮ㄩ棬鍚嶇О + */ + @TableField(exist = false) + private String deptName; + /** * 瀵嗙爜绛栫暐 */ @TableField(exist = false) diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/VciSystemVarConstants.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/VciSystemVarConstants.java index 0c049d8..5205ff7 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/VciSystemVarConstants.java +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/VciSystemVarConstants.java @@ -4,6 +4,7 @@ import com.vci.ubcs.starter.web.pagemodel.SessionInfo; import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.starter.web.util.VciDateUtil; +import org.springblade.core.secure.utils.AuthUtil; import java.util.*; import java.util.stream.Collectors; @@ -45,25 +46,23 @@ public static Map<String, String> getSystemVarValueMap() { Map<String, String> systemVarMap = new HashMap(); - SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); - if (sessionInfo != null) { - systemVarMap.put("#CURRENTUSER.OID#", sessionInfo.getUserOid()); - systemVarMap.put("#CURRENTUSER.ID#", sessionInfo.getUserId()); - systemVarMap.put("#CURRENTUSER_NAME#", sessionInfo.getUserName()); - systemVarMap.put("#CURRENTDATETIME#", VciDateUtil.getNowString()); - systemVarMap.put("#CURRENTDATE#", VciDateUtil.getNowString("yyyy-MM-dd")); - systemVarMap.put("#CURRENTTIME#", VciDateUtil.getNowString("HH:mm:ss")); - systemVarMap.put("#CURRENTUSER.SECRETGRADE#", sessionInfo.getUserSecret()); - systemVarMap.put("#CURRENTUSER.GROUPNAME#", sessionInfo.getDeptName()); - systemVarMap.put("#CURRENTUSER.GROUPOID#", sessionInfo.getDeptOid()); - systemVarMap.put("#CURRENTUSER.EMAIL#", sessionInfo.getEmail()); - systemVarMap.put("#CURRENTUSER.ROLENAME#", (String) ((Collection) Optional.ofNullable(sessionInfo.getRolesName().values()).orElseGet(() -> { - return new ArrayList(); - })).stream().collect(Collectors.joining(","))); - systemVarMap.put("#CURRENTUSER.IPSECRET#", sessionInfo.getIpSecret()); - systemVarMap.put("#CURRENTUSER.BUSINESSUNIT#", sessionInfo.getOrgsOid()); - systemVarMap.put("#CURRENTUSER.BUSINESSUNITNAME#", sessionInfo.getOrgsName()); - } +// SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); +// if (sessionInfo != null) { + systemVarMap.put("#CURRENTUSER.OID#", String.valueOf(AuthUtil.getUser().getUserId())); + systemVarMap.put("#CURRENTUSER.ID#", AuthUtil.getUser().getAccount()); + systemVarMap.put("#CURRENTUSER_NAME#", AuthUtil.getUser().getUserName()); + systemVarMap.put("#CURRENTDATETIME#", VciDateUtil.getNowString()); + systemVarMap.put("#CURRENTDATE#", VciDateUtil.getNowString("yyyy-MM-dd")); + systemVarMap.put("#CURRENTTIME#", VciDateUtil.getNowString("HH:mm:ss")); + systemVarMap.put("#CURRENTUSER.SECRETGRADE#", (String) AuthUtil.getUser().getDetail().get("secretGrade")); + systemVarMap.put("#CURRENTUSER.GROUPNAME#", (String) AuthUtil.getUser().getDetail().get("deptName")); + systemVarMap.put("#CURRENTUSER.GROUPOID#", AuthUtil.getUser().getDeptId()); + systemVarMap.put("#CURRENTUSER.EMAIL#", (String) AuthUtil.getUser().getDetail().get("email")); + systemVarMap.put("#CURRENTUSER.ROLENAME#", AuthUtil.getUser().getRoleName()); + systemVarMap.put("#CURRENTUSER.IPSECRET#", ""); + systemVarMap.put("#CURRENTUSER.BUSINESSUNIT#", AuthUtil.getUser().getTenantId()); + systemVarMap.put("#CURRENTUSER.BUSINESSUNITNAME#", (String) AuthUtil.getUser().getDetail().get("tenantName")); +// } return systemVarMap; } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index 051c73b..2a27423 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -38,6 +38,7 @@ import com.vci.ubcs.starter.util.UBCSSqlKeyword; import com.vci.ubcs.starter.web.constant.QueryOptionConstant; import com.vci.ubcs.starter.web.constant.RegExpConstant; +import com.vci.ubcs.starter.web.constant.VciSystemVarConstants; import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; @@ -391,6 +392,7 @@ public String addSaveCode(CodeOrderDTO orderDTO) throws Exception { VciBaseUtil.alertNotNull(orderDTO, "缂栫爜鐢宠鐩稿叧鐨勫睘鎬у拰鐮佹鐨勫唴瀹归兘涓虹┖", orderDTO.getCodeClassifyOid(), "涓婚搴撳垎绫荤殑涓婚敭", orderDTO.getTemplateOid(), "妯℃澘鐨勪富閿�", orderDTO.getCodeRuleOid(), "缂栫爜瑙勫垯鐨勪富閿�"); + VciSystemVarConstants.getSystemVarValueMap(); CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid()); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java index 984f76a..95e3f5a 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java @@ -780,8 +780,13 @@ * @param rule 瑙勫垯鐨勫唴瀹� * @return 杞崲鍚庣殑 */ - private String getValueByFormulaForCBO(BaseModel cbo,String rule){ - Map<String, Object> dataMap = BeanUtils.beanToMap(cbo); + private String getValueByFormulaForCBO(BaseModel cbo,String rule) { + Map<String, Object> dataMap = null; + try{ + dataMap = VciBaseUtil.convertBean2Map(cbo); + }catch(Exception e){ + throw new VciBaseException("mapToBeanError:"+e); + } Map<String, String> map = new HashMap<String, String>(); for (String i : dataMap.keySet()) { map.put(i, String.valueOf(dataMap.get(i))); diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java index 6244112..4eceb7b 100644 --- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java @@ -244,6 +244,7 @@ if (ObjectUtil.isEmpty(user)) { return null; } + user.setDeptName(Func.join(SysCache.getDeptNames(user.getDeptId()))); UserInfo userInfo = new UserInfo(); userInfo.setUser(user); if (Func.isNotEmpty(user)) { -- Gitblit v1.9.3