From ce016b05dba7a148788d768b87eb7197e5a1608a Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Mon, 2 May 2022 07:32:26 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=A3=20=E5=88=B6=E5=AE=9A=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83=E6=A8=A1=E6=9D=BF=E5=9B=A2=E9=98=9F?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kicc/auth/endpoint/kiccTokenEndpoint.java | 4 +- ...kiccAuthenticationFailureEventHandler.java | 4 +- ...kiccAuthenticationSuccessEventHandler.java | 4 +- .../kiccLogoutSuccessEventHandler.java | 8 ++-- .../core/{util => constant}/StringPool.java | 3 +- .../util/{BaseUtils.java => BaseUtil.java} | 2 +- .../util/{ClassUtils.java => ClassUtil.java} | 4 +- .../{HTMLFilter.java => HTMLFilterUtil.java} | 6 +-- .../{JasyptUtils.java => JasyptUtil.java} | 2 +- ...lder.java => SpringContextHolderUtil.java} | 6 +-- .../core/util/{WebUtils.java => WebUtil.java} | 12 ++--- .../main/resources/META-INF/spring.factories | 2 +- .../kicc/common/log/aspect/SysLogAspect.java | 4 +- .../mock/WithMockSecurityContextFactory.java | 8 ++-- .../kicc/common/mock/kit/OAuthMockKit.java | 4 +- .../rocketmq/constant/MessageConstant.java | 2 +- ...enStoreAutoCleanScheduleConfiguration.java | 4 +- .../KiccDaoAuthenticationProvider.java | 4 +- .../FormAuthenticationFailureHandler.java | 4 +- .../xss/XssHttpServletRequestWrapper.java | 4 +- .../filter/ValidateCodeGatewayFilter.java | 4 +- .../cloud/kicc/system/api/enums/MenuEnum.java | 11 +++++ .../com/cloud/kicc/system/api/vo/MenuVo.java | 5 +++ .../system/service/impl/MenuServiceImpl.java | 23 ++++++++-- .../cloud/kicc/system/util/MenuRouteUtil.java | 44 +++++++++++++++++++ .../src/main/resources/mapper/MenuMapper.xml | 1 + 26 files changed, 129 insertions(+), 50 deletions(-) rename kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/{util => constant}/StringPool.java (97%) rename kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/{BaseUtils.java => BaseUtil.java} (95%) rename kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/{ClassUtils.java => ClassUtil.java} (95%) rename kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/{HTMLFilter.java => HTMLFilterUtil.java} (99%) rename kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/{JasyptUtils.java => JasyptUtil.java} (97%) rename kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/{SpringContextHolder.java => SpringContextHolderUtil.java} (91%) rename kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/{WebUtils.java => WebUtil.java} (92%) create mode 100644 kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/util/MenuRouteUtil.java diff --git a/kicc-auth/src/main/java/com/cloud/kicc/auth/endpoint/kiccTokenEndpoint.java b/kicc-auth/src/main/java/com/cloud/kicc/auth/endpoint/kiccTokenEndpoint.java index 2dfcc6e5..6b6f56e8 100644 --- a/kicc-auth/src/main/java/com/cloud/kicc/auth/endpoint/kiccTokenEndpoint.java +++ b/kicc-auth/src/main/java/com/cloud/kicc/auth/endpoint/kiccTokenEndpoint.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cloud.kicc.common.core.constant.CacheConstants; import com.cloud.kicc.common.core.constant.CommonConstants; import com.cloud.kicc.common.core.api.R; -import com.cloud.kicc.common.core.util.SpringContextHolder; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import com.cloud.kicc.common.security.annotation.Inner; import com.cloud.kicc.common.security.util.SecurityUtils; import lombok.RequiredArgsConstructor; @@ -129,7 +129,7 @@ public class kiccTokenEndpoint { tokenStore.removeRefreshToken(refreshToken); // 处理自定义退出事件,保存相关日志 - SpringContextHolder.publishEvent(new LogoutSuccessEvent(auth2Authentication)); + SpringContextHolderUtil.publishEvent(new LogoutSuccessEvent(auth2Authentication)); return R.ok(true); } diff --git a/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationFailureEventHandler.java b/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationFailureEventHandler.java index e84c3f25..398f6283 100644 --- a/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationFailureEventHandler.java +++ b/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationFailureEventHandler.java @@ -1,7 +1,7 @@ package com.cloud.kicc.auth.handler; import com.cloud.kicc.system.api.entity.OperLog; -import com.cloud.kicc.common.core.util.SpringContextHolder; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.util.LogTypeEnum; @@ -57,7 +57,7 @@ public class kiccAuthenticationFailureEventHandler extends AbstractAuthenticatio operLog.setUpdateByName(kiccUser.getUsername()); } - SpringContextHolder.publishEvent(new SysLogEvent(operLog)); + SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog)); } } diff --git a/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationSuccessEventHandler.java b/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationSuccessEventHandler.java index 2199ea85..4f117ec7 100644 --- a/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationSuccessEventHandler.java +++ b/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationSuccessEventHandler.java @@ -1,7 +1,7 @@ package com.cloud.kicc.auth.handler; import com.cloud.kicc.system.api.entity.OperLog; -import com.cloud.kicc.common.core.util.SpringContextHolder; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.util.SysLogUtils; @@ -50,7 +50,7 @@ public class kiccAuthenticationSuccessEventHandler extends AbstractAuthenticatio } Long endTime = System.currentTimeMillis(); operLog.setExecuteTime((endTime - startTime) + "毫秒"); - SpringContextHolder.publishEvent(new SysLogEvent(operLog)); + SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog)); } } diff --git a/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccLogoutSuccessEventHandler.java b/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccLogoutSuccessEventHandler.java index 1664e30e..5c811be0 100644 --- a/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccLogoutSuccessEventHandler.java +++ b/kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccLogoutSuccessEventHandler.java @@ -1,8 +1,8 @@ package com.cloud.kicc.auth.handler; import com.cloud.kicc.system.api.entity.OperLog; -import com.cloud.kicc.common.core.util.SpringContextHolder; -import com.cloud.kicc.common.core.util.WebUtils; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; +import com.cloud.kicc.common.core.util.WebUtil; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.util.SysLogUtils; @@ -49,7 +49,7 @@ public class kiccLogoutSuccessEventHandler extends AbstractLogoutSuccessEventHan operLog.setExecuteTime((endTime - startTime) + "毫秒"); // 设置对应的token - WebUtils.getRequest().ifPresent(request -> operLog.setOperParam(request.getHeader(HttpHeaders.AUTHORIZATION))); + WebUtil.getRequest().ifPresent(request -> operLog.setOperParam(request.getHeader(HttpHeaders.AUTHORIZATION))); // 这边设置ServiceId if (authentication instanceof OAuth2Authentication) { @@ -65,7 +65,7 @@ public class kiccLogoutSuccessEventHandler extends AbstractLogoutSuccessEventHan operLog.setUpdateByName(kiccUser.getUsername()); } - SpringContextHolder.publishEvent(new SysLogEvent(operLog)); + SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog)); } } diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/StringPool.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/StringPool.java similarity index 97% rename from kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/StringPool.java rename to kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/StringPool.java index 1482cf4b..765cfbf7 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/StringPool.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/StringPool.java @@ -1,4 +1,4 @@ -package com.cloud.kicc.common.core.util; +package com.cloud.kicc.common.core.constant; /** * Copy to kicc.common.util @@ -17,6 +17,7 @@ package com.cloud.kicc.common.core.util; *
  • Strings computed by constant expressions are computed at compile time and then treated as if they were literals.
  • *
  • Strings computed by concatenation at run time are newly created and therefore distinct.
  • * + * @author entfrm开发团队-王翔 */ public interface StringPool { diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtils.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtil.java similarity index 95% rename from kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtils.java rename to kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtil.java index 413ee4e9..57525e60 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtils.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtil.java @@ -12,7 +12,7 @@ import lombok.experimental.UtilityClass; * @Date: 2022/3/21 */ @UtilityClass -public class BaseUtils { +public class BaseUtil { /** * 雪花算法生成全局ID diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtils.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtil.java similarity index 95% rename from kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtils.java rename to kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtil.java index 636111bc..cbc986a6 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtils.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtil.java @@ -22,7 +22,7 @@ import java.lang.reflect.Method; * @Date: 2022/2/18 */ @UtilityClass -public class ClassUtils extends org.springframework.util.ClassUtils { +public class ClassUtil extends org.springframework.util.ClassUtils { private final ParameterNameDiscoverer PARAMETERNAMEDISCOVERER = new DefaultParameterNameDiscoverer(); @@ -62,7 +62,7 @@ public class ClassUtils extends org.springframework.util.ClassUtils { // The method may be on an interface, but we need attributes from the target // class. // If the target class is null, the method will be unchanged. - Method specificMethod = ClassUtils.getMostSpecificMethod(method, targetClass); + Method specificMethod = ClassUtil.getMostSpecificMethod(method, targetClass); // If we are dealing with method with generic parameters, find the original // method. specificMethod = BridgeMethodResolver.findBridgedMethod(specificMethod); diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilter.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilterUtil.java similarity index 99% rename from kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilter.java rename to kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilterUtil.java index 85ad5e66..830ff3ed 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilter.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilterUtil.java @@ -14,7 +14,7 @@ import java.util.regex.Pattern; * @Author: entfrm开发团队-王翔 * @Date: 2022/2/19 */ -public final class HTMLFilter { +public final class HTMLFilterUtil { /** * regex flag union representing /si modifiers in php **/ @@ -98,7 +98,7 @@ public final class HTMLFilter { /** * Default constructor. */ - public HTMLFilter() { + public HTMLFilterUtil() { vAllowed = new HashMap<>(); final ArrayList a_atts = new ArrayList<>(); @@ -137,7 +137,7 @@ public final class HTMLFilter { * @param conf map containing configuration. keys match field names. */ @SuppressWarnings("unchecked") - public HTMLFilter(final Map conf) { + public HTMLFilterUtil(final Map conf) { assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtils.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtil.java similarity index 97% rename from kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtils.java rename to kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtil.java index 21f93019..e9da14ab 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtils.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtil.java @@ -14,7 +14,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; * @Author: entfrm开发团队-王翔 * @Date: 2022/2/24 */ -public class JasyptUtils { +public class JasyptUtil { public static void main(String[] args) { testEnvironmentProperties(); diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolder.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolderUtil.java similarity index 91% rename from kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolder.java rename to kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolderUtil.java index 1cce2abf..f7427e51 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolder.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolderUtil.java @@ -20,7 +20,7 @@ import org.springframework.stereotype.Service; @Slf4j @Service @Lazy(false) -public class SpringContextHolder implements ApplicationContextAware, DisposableBean { +public class SpringContextHolderUtil implements ApplicationContextAware, DisposableBean { private static ApplicationContext applicationContext = null; @@ -36,7 +36,7 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB */ @Override public void setApplicationContext(ApplicationContext applicationContext) { - SpringContextHolder.applicationContext = applicationContext; + SpringContextHolderUtil.applicationContext = applicationContext; } /** @@ -81,7 +81,7 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB @Override @SneakyThrows public void destroy() { - SpringContextHolder.clearHolder(); + SpringContextHolderUtil.clearHolder(); } } diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtils.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtil.java similarity index 92% rename from kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtils.java rename to kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtil.java index bfb325eb..82259d40 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtils.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtil.java @@ -34,7 +34,7 @@ import java.util.Optional; */ @Slf4j @UtilityClass -public class WebUtils extends org.springframework.web.util.WebUtils { +public class WebUtil extends org.springframework.web.util.WebUtils { private final String BASIC_ = "Basic "; @@ -46,7 +46,7 @@ public class WebUtils extends org.springframework.web.util.WebUtils { * @return 是否ajax请求 */ public boolean isBody(HandlerMethod handlerMethod) { - ResponseBody responseBody = ClassUtils.getAnnotation(handlerMethod, ResponseBody.class); + ResponseBody responseBody = ClassUtil.getAnnotation(handlerMethod, ResponseBody.class); return responseBody != null; } @@ -56,8 +56,8 @@ public class WebUtils extends org.springframework.web.util.WebUtils { * @return cookie value */ public String getCookieVal(String name) { - if (WebUtils.getRequest().isPresent()) { - return getCookieVal(WebUtils.getRequest().get(), name); + if (WebUtil.getRequest().isPresent()) { + return getCookieVal(WebUtil.getRequest().get(), name); } return null; } @@ -152,8 +152,8 @@ public class WebUtils extends org.springframework.web.util.WebUtils { @SneakyThrows public String getClientId() { - if (WebUtils.getRequest().isPresent()) { - String header = WebUtils.getRequest().get().getHeader(HttpHeaders.AUTHORIZATION); + if (WebUtil.getRequest().isPresent()) { + String header = WebUtil.getRequest().get().getHeader(HttpHeaders.AUTHORIZATION); return splitClient(header)[0]; } return null; diff --git a/kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories b/kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories index 4c15eb89..796edc20 100644 --- a/kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories +++ b/kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories @@ -1,4 +1,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.cloud.kicc.common.core.config.WebMvcConfiguration,\ com.cloud.kicc.common.core.config.RestTemplateConfiguration,\ - com.cloud.kicc.common.core.util.SpringContextHolder + com.cloud.kicc.common.core.util.SpringContextHolderUtil diff --git a/kicc-common/kicc-common-log/src/main/java/com/cloud/kicc/common/log/aspect/SysLogAspect.java b/kicc-common/kicc-common-log/src/main/java/com/cloud/kicc/common/log/aspect/SysLogAspect.java index d789a0b0..f98d9116 100644 --- a/kicc-common/kicc-common-log/src/main/java/com/cloud/kicc/common/log/aspect/SysLogAspect.java +++ b/kicc-common/kicc-common-log/src/main/java/com/cloud/kicc/common/log/aspect/SysLogAspect.java @@ -1,7 +1,7 @@ package com.cloud.kicc.common.log.aspect; import com.cloud.kicc.system.api.entity.OperLog; -import com.cloud.kicc.common.core.util.SpringContextHolder; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import com.cloud.kicc.common.log.annotation.SysLog; import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.util.LogTypeEnum; @@ -49,7 +49,7 @@ public class SysLogAspect { finally { Long endTime = System.currentTimeMillis(); operLog.setExecuteTime((endTime - startTime) + "毫秒"); - SpringContextHolder.publishEvent(new SysLogEvent(operLog)); + SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog)); } return obj; diff --git a/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/WithMockSecurityContextFactory.java b/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/WithMockSecurityContextFactory.java index 2a92292b..ec921a3f 100644 --- a/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/WithMockSecurityContextFactory.java +++ b/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/WithMockSecurityContextFactory.java @@ -2,7 +2,7 @@ package com.cloud.kicc.common.mock; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; -import com.cloud.kicc.common.core.util.SpringContextHolder; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import com.cloud.kicc.common.mock.annotation.WithMockOAuth2User; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; @@ -37,7 +37,7 @@ public class WithMockSecurityContextFactory implements WithSecurityContextFactor // 4. 上下文保存 token DefaultOAuth2AccessToken accessToken = new DefaultOAuth2AccessToken(token); - OAuth2ClientContext clientContext = SpringContextHolder.getBean(OAuth2ClientContext.class); + OAuth2ClientContext clientContext = SpringContextHolderUtil.getBean(OAuth2ClientContext.class); clientContext.setAccessToken(accessToken); return context; } @@ -48,7 +48,7 @@ public class WithMockSecurityContextFactory implements WithSecurityContextFactor * @return String token */ private String getToken(WithMockOAuth2User oAuth2User) { - OAuth2ProtectedResourceDetails clientProperties = SpringContextHolder.getBean(OAuth2ProtectedResourceDetails.class); + OAuth2ProtectedResourceDetails clientProperties = SpringContextHolderUtil.getBean(OAuth2ProtectedResourceDetails.class); String result = HttpRequest.post(clientProperties.getAccessTokenUri()) .basicAuth(clientProperties.getClientId(), clientProperties.getClientSecret()) .form("username", oAuth2User.username()) @@ -66,7 +66,7 @@ public class WithMockSecurityContextFactory implements WithSecurityContextFactor * @return user详细 */ private OAuth2Authentication getUser(String token) { - RemoteTokenServices tokenServices = SpringContextHolder.getBean(RemoteTokenServices.class); + RemoteTokenServices tokenServices = SpringContextHolderUtil.getBean(RemoteTokenServices.class); return tokenServices.loadAuthentication(token); } diff --git a/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/kit/OAuthMockKit.java b/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/kit/OAuthMockKit.java index fd8c4864..ca1fa194 100644 --- a/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/kit/OAuthMockKit.java +++ b/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/kit/OAuthMockKit.java @@ -1,6 +1,6 @@ package com.cloud.kicc.common.mock.kit; -import com.cloud.kicc.common.core.util.SpringContextHolder; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import org.springframework.http.HttpHeaders; import org.springframework.security.oauth2.client.OAuth2ClientContext; import org.springframework.test.web.servlet.request.RequestPostProcessor; @@ -21,7 +21,7 @@ public class OAuthMockKit { */ public static RequestPostProcessor token() { return mockRequest -> { - OAuth2ClientContext clientContext = SpringContextHolder.getBean(OAuth2ClientContext.class); + OAuth2ClientContext clientContext = SpringContextHolderUtil.getBean(OAuth2ClientContext.class); String token = clientContext.getAccessToken().getValue(); mockRequest.addHeader(HttpHeaders.AUTHORIZATION, String.format("Bearer: %s", token)); return mockRequest; diff --git a/kicc-common/kicc-common-rocketmq/src/main/java/com/cloud/kicc/common/rocketmq/constant/MessageConstant.java b/kicc-common/kicc-common-rocketmq/src/main/java/com/cloud/kicc/common/rocketmq/constant/MessageConstant.java index 1bd28f9a..78538d08 100644 --- a/kicc-common/kicc-common-rocketmq/src/main/java/com/cloud/kicc/common/rocketmq/constant/MessageConstant.java +++ b/kicc-common/kicc-common-rocketmq/src/main/java/com/cloud/kicc/common/rocketmq/constant/MessageConstant.java @@ -1,6 +1,6 @@ package com.cloud.kicc.common.rocketmq.constant; -import com.cloud.kicc.common.core.util.StringPool; +import com.cloud.kicc.common.core.constant.StringPool; /** *

    diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/TokenStoreAutoCleanScheduleConfiguration.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/TokenStoreAutoCleanScheduleConfiguration.java index 9e34fcc0..81634f8f 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/TokenStoreAutoCleanScheduleConfiguration.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/TokenStoreAutoCleanScheduleConfiguration.java @@ -1,6 +1,6 @@ package com.cloud.kicc.common.security.config; -import com.cloud.kicc.common.core.util.SpringContextHolder; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import com.cloud.kicc.common.security.override.KiccRedisTokenStore; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -26,7 +26,7 @@ public class TokenStoreAutoCleanScheduleConfiguration { */ @Scheduled(cron = "@hourly") public void doMaintenance() { - KiccRedisTokenStore tokenStore = SpringContextHolder.getBean(KiccRedisTokenStore.class); + KiccRedisTokenStore tokenStore = SpringContextHolderUtil.getBean(KiccRedisTokenStore.class); long maintenance = tokenStore.doMaintenance(); log.debug("清理Redis ZADD 过期 token 数量: {}", maintenance); } diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java index fadd5dc2..612d3d5a 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java @@ -1,7 +1,7 @@ package com.cloud.kicc.common.security.grant.provider; import cn.hutool.extra.spring.SpringUtil; -import com.cloud.kicc.common.core.util.WebUtils; +import com.cloud.kicc.common.core.util.WebUtil; import com.cloud.kicc.common.security.service.KiccUserDetailsService; import org.springframework.core.Ordered; import org.springframework.security.authentication.BadCredentialsException; @@ -85,7 +85,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica // SSO NPE 处理 String clientId; if (clientAuthentication == null) { - clientId = WebUtils.getRequest().get().getParameter("clientId"); + clientId = WebUtil.getRequest().get().getParameter("clientId"); } else { clientId = clientAuthentication.getName(); diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/handler/FormAuthenticationFailureHandler.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/handler/FormAuthenticationFailureHandler.java index d50543d4..20c3aeec 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/handler/FormAuthenticationFailureHandler.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/handler/FormAuthenticationFailureHandler.java @@ -2,7 +2,7 @@ package com.cloud.kicc.common.security.handler; import cn.hutool.core.util.CharsetUtil; import cn.hutool.http.HttpUtil; -import com.cloud.kicc.common.core.util.WebUtils; +import com.cloud.kicc.common.core.util.WebUtil; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.AuthenticationException; @@ -35,7 +35,7 @@ public class FormAuthenticationFailureHandler implements AuthenticationFailureHa log.debug("表单登录失败:{}", exception.getLocalizedMessage()); String url = HttpUtil.encodeParams(String.format("/token/login?error=%s", exception.getMessage()), CharsetUtil.CHARSET_UTF_8); - WebUtils.getResponse().sendRedirect(url); + WebUtil.getResponse().sendRedirect(url); } } diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/xss/XssHttpServletRequestWrapper.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/xss/XssHttpServletRequestWrapper.java index c3af0320..8afb5ac3 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/xss/XssHttpServletRequestWrapper.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/xss/XssHttpServletRequestWrapper.java @@ -3,7 +3,7 @@ package com.cloud.kicc.common.security.xss; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HtmlUtil; -import com.cloud.kicc.common.core.util.HTMLFilter; +import com.cloud.kicc.common.core.util.HTMLFilterUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -80,7 +80,7 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { } // xss过滤 - json = new HTMLFilter().filter(json).trim(); + json = new HTMLFilterUtil().filter(json).trim(); final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8")); return new ServletInputStream() { @Override diff --git a/kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/ValidateCodeGatewayFilter.java b/kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/ValidateCodeGatewayFilter.java index 8fde73d6..6fbca198 100644 --- a/kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/ValidateCodeGatewayFilter.java +++ b/kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/ValidateCodeGatewayFilter.java @@ -7,7 +7,7 @@ import com.cloud.kicc.common.core.constant.CacheConstants; import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.exception.ValidateCodeException; import com.cloud.kicc.common.core.api.R; -import com.cloud.kicc.common.core.util.WebUtils; +import com.cloud.kicc.common.core.util.WebUtil; import com.cloud.kicc.gateway.config.GatewayConfigProperties; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -59,7 +59,7 @@ public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory { return chain.filter(exchange); } - boolean isIgnoreClient = configProperties.getIgnoreClients().contains(WebUtils.getClientId(request)); + boolean isIgnoreClient = configProperties.getIgnoreClients().contains(WebUtil.getClientId(request)); try { // 只有oauth和请求不在忽略客户端需要检查代码。 if (!isIgnoreClient) { diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/MenuEnum.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/MenuEnum.java index 83029de5..a0cce99d 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/MenuEnum.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/MenuEnum.java @@ -20,6 +20,16 @@ public enum MenuEnum { */ MENU_M("M", "菜单模块类(菜单目录)"), + /** + * 菜单按钮 + */ + MENU_F("F", "菜单按钮"), + + /** + * 分割菜单重定向路由URL默认地址 + */ + MENU_ROUTE_DEFAULT_URL("/dashboard/analysis", "分割菜单重定向路由URL默认地址"), + /** * 菜单0,启动,根菜单标识 */ @@ -30,6 +40,7 @@ public enum MenuEnum { */ MENU_1("1", "禁用"); + /** * 值 */ diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/MenuVo.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/MenuVo.java index 66f18ea4..977d814a 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/MenuVo.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/MenuVo.java @@ -21,6 +21,11 @@ public class MenuVo implements Serializable { */ private String name; + /** + * 分割菜单重定向URL + */ + private String redirect; + /** * 路由地址 */ diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/MenuServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/MenuServiceImpl.java index a42a17af..d19abcde 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/MenuServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/MenuServiceImpl.java @@ -1,5 +1,6 @@ package com.cloud.kicc.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,11 +11,10 @@ import com.cloud.kicc.system.api.vo.MetaVo; import com.cloud.kicc.system.mapper.MenuMapper; import com.cloud.kicc.system.service.MenuService; import com.cloud.kicc.common.core.constant.RegexConstants; +import com.cloud.kicc.system.util.MenuRouteUtil; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,6 +53,8 @@ public class MenuServiceImpl extends ServiceImpl implements Me if (MenuEnum.MENU_0.getValue().equals(menu.getParentId()) && !ReUtil.isMatch(RegexConstants.MATCHER_URL, menu.getPath())) { menuVo.setComponent("Layout"); menuVo.setPath("/" + menu.getPath()); + String redirect = handleRouteRedirect(menu); + menuVo.setRedirect(StrUtil.isNotBlank(redirect) ? redirect : MenuEnum.MENU_ROUTE_DEFAULT_URL.getValue()); } else { menuVo.setPath(menu.getPath()); } @@ -62,6 +64,7 @@ public class MenuServiceImpl extends ServiceImpl implements Me .setIcon(menu.getIcon()) .setHideMenu(MenuEnum.MENU_1.getValue().equals(menu.getHideMenu())) .setKeepAlive(menu.getKeepAlive().equals(MenuEnum.MENU_1.getValue()))); + List

    childrenMenus = menu.getChildren(); if (childrenMenus != null && childrenMenus.size() > 0 && MenuEnum.MENU_M.getValue().equals(menu.getType())) { menuVo.setChildren(buildMenuRoute(childrenMenus)); @@ -71,6 +74,20 @@ public class MenuServiceImpl extends ServiceImpl implements Me return menuVoList; } + /** 处理顶端分割菜单点击路由重定向 */ + public static String handleRouteRedirect(Menu menu){ + String redirect = menu.getPath(); + List children = menu.getChildren(); + // 检查子集,只查询第一个子菜单不包括按钮的路由路径 + if (CollectionUtil.isNotEmpty(children)) { + Menu childMenu = children.get(0); + if(!childMenu.getType().equals(MenuEnum.MENU_F.getValue())){ + redirect = MenuRouteUtil.routePathJoin(redirect, handleRouteRedirect(childMenu)); + } + } + return redirect; + } + @Override public List buildMenuTree(List list, String parentId) { List menuList = new ArrayList(); diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/util/MenuRouteUtil.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/util/MenuRouteUtil.java new file mode 100644 index 00000000..bcb962a0 --- /dev/null +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/util/MenuRouteUtil.java @@ -0,0 +1,44 @@ +package com.cloud.kicc.system.util; + +import cn.hutool.core.util.StrUtil; +import lombok.experimental.UtilityClass; + +import java.io.File; + +/** + *

    + * 菜单路由工具 + *

    + * + * @Author: entfrm开发团队-王翔 + * @Date: 2022/5/2 + */ +@UtilityClass +public class MenuRouteUtil { + + /** + * 处理重定向路由路径拼接 + * @Param args 多个路径 + * @return String 返回拼接后路径 + */ + public static String routePathJoin(String... args) { + StringBuilder sb = new StringBuilder(); + for (String arg : args) { + if (StrUtil.isNotBlank(arg)) { + // 清除前置斜杆 + if(arg.startsWith("/")) { + arg = arg.substring(1); + } + // 检查拼接后置斜杠 + if(arg.endsWith("/")) { + sb.append(arg); + } else { + sb.append(arg + "/"); + } + } + } + sb.deleteCharAt(sb.length()-1); + return sb.toString(); + } + +} diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml index 61ccc122..3c8eee2a 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml @@ -7,6 +7,7 @@ +