Browse Source

👣 制定代码规范模板团队规则

master
wangxiang 3 years ago
parent
commit
ce016b05db
  1. 4
      kicc-auth/src/main/java/com/cloud/kicc/auth/endpoint/kiccTokenEndpoint.java
  2. 4
      kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationFailureEventHandler.java
  3. 4
      kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationSuccessEventHandler.java
  4. 8
      kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccLogoutSuccessEventHandler.java
  5. 3
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/StringPool.java
  6. 2
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtil.java
  7. 4
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtil.java
  8. 6
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilterUtil.java
  9. 2
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtil.java
  10. 6
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolderUtil.java
  11. 12
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtil.java
  12. 2
      kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories
  13. 4
      kicc-common/kicc-common-log/src/main/java/com/cloud/kicc/common/log/aspect/SysLogAspect.java
  14. 8
      kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/WithMockSecurityContextFactory.java
  15. 4
      kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/kit/OAuthMockKit.java
  16. 2
      kicc-common/kicc-common-rocketmq/src/main/java/com/cloud/kicc/common/rocketmq/constant/MessageConstant.java
  17. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/TokenStoreAutoCleanScheduleConfiguration.java
  18. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java
  19. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/handler/FormAuthenticationFailureHandler.java
  20. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/xss/XssHttpServletRequestWrapper.java
  21. 4
      kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/ValidateCodeGatewayFilter.java
  22. 11
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/MenuEnum.java
  23. 5
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/MenuVo.java
  24. 23
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/MenuServiceImpl.java
  25. 44
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/util/MenuRouteUtil.java
  26. 1
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml

4
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.CacheConstants;
import com.cloud.kicc.common.core.constant.CommonConstants; import com.cloud.kicc.common.core.constant.CommonConstants;
import com.cloud.kicc.common.core.api.R; 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.annotation.Inner;
import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.common.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -129,7 +129,7 @@ public class kiccTokenEndpoint {
tokenStore.removeRefreshToken(refreshToken); tokenStore.removeRefreshToken(refreshToken);
// 处理自定义退出事件,保存相关日志 // 处理自定义退出事件,保存相关日志
SpringContextHolder.publishEvent(new LogoutSuccessEvent(auth2Authentication)); SpringContextHolderUtil.publishEvent(new LogoutSuccessEvent(auth2Authentication));
return R.ok(true); return R.ok(true);
} }

4
kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationFailureEventHandler.java

@ -1,7 +1,7 @@
package com.cloud.kicc.auth.handler; package com.cloud.kicc.auth.handler;
import com.cloud.kicc.system.api.entity.OperLog; 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.data.entity.KiccUser;
import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.event.SysLogEvent;
import com.cloud.kicc.common.log.util.LogTypeEnum; import com.cloud.kicc.common.log.util.LogTypeEnum;
@ -57,7 +57,7 @@ public class kiccAuthenticationFailureEventHandler extends AbstractAuthenticatio
operLog.setUpdateByName(kiccUser.getUsername()); operLog.setUpdateByName(kiccUser.getUsername());
} }
SpringContextHolder.publishEvent(new SysLogEvent(operLog)); SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog));
} }
} }

4
kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccAuthenticationSuccessEventHandler.java

@ -1,7 +1,7 @@
package com.cloud.kicc.auth.handler; package com.cloud.kicc.auth.handler;
import com.cloud.kicc.system.api.entity.OperLog; 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.data.entity.KiccUser;
import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.event.SysLogEvent;
import com.cloud.kicc.common.log.util.SysLogUtils; import com.cloud.kicc.common.log.util.SysLogUtils;
@ -50,7 +50,7 @@ public class kiccAuthenticationSuccessEventHandler extends AbstractAuthenticatio
} }
Long endTime = System.currentTimeMillis(); Long endTime = System.currentTimeMillis();
operLog.setExecuteTime((endTime - startTime) + "毫秒"); operLog.setExecuteTime((endTime - startTime) + "毫秒");
SpringContextHolder.publishEvent(new SysLogEvent(operLog)); SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog));
} }
} }

8
kicc-auth/src/main/java/com/cloud/kicc/auth/handler/kiccLogoutSuccessEventHandler.java

@ -1,8 +1,8 @@
package com.cloud.kicc.auth.handler; package com.cloud.kicc.auth.handler;
import com.cloud.kicc.system.api.entity.OperLog; 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.core.util.WebUtils; import com.cloud.kicc.common.core.util.WebUtil;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.event.SysLogEvent;
import com.cloud.kicc.common.log.util.SysLogUtils; import com.cloud.kicc.common.log.util.SysLogUtils;
@ -49,7 +49,7 @@ public class kiccLogoutSuccessEventHandler extends AbstractLogoutSuccessEventHan
operLog.setExecuteTime((endTime - startTime) + "毫秒"); operLog.setExecuteTime((endTime - startTime) + "毫秒");
// 设置对应的token // 设置对应的token
WebUtils.getRequest().ifPresent(request -> operLog.setOperParam(request.getHeader(HttpHeaders.AUTHORIZATION))); WebUtil.getRequest().ifPresent(request -> operLog.setOperParam(request.getHeader(HttpHeaders.AUTHORIZATION)));
// 这边设置ServiceId // 这边设置ServiceId
if (authentication instanceof OAuth2Authentication) { if (authentication instanceof OAuth2Authentication) {
@ -65,7 +65,7 @@ public class kiccLogoutSuccessEventHandler extends AbstractLogoutSuccessEventHan
operLog.setUpdateByName(kiccUser.getUsername()); operLog.setUpdateByName(kiccUser.getUsername());
} }
SpringContextHolder.publishEvent(new SysLogEvent(operLog)); SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog));
} }
} }

3
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/StringPool.java → 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 * Copy to kicc.common.util
@ -17,6 +17,7 @@ package com.cloud.kicc.common.core.util;
* <li>Strings computed by constant expressions are computed at compile time and then treated as if they were literals.</li> * <li>Strings computed by constant expressions are computed at compile time and then treated as if they were literals.</li>
* <li>Strings computed by concatenation at run time are newly created and therefore distinct.</li> * <li>Strings computed by concatenation at run time are newly created and therefore distinct.</li>
* </ul> * </ul>
* @author entfrm开发团队-王翔
*/ */
public interface StringPool { public interface StringPool {

2
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/BaseUtils.java → 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 * @Date: 2022/3/21
*/ */
@UtilityClass @UtilityClass
public class BaseUtils { public class BaseUtil {
/** /**
* 雪花算法生成全局ID * 雪花算法生成全局ID

4
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/ClassUtils.java → 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 * @Date: 2022/2/18
*/ */
@UtilityClass @UtilityClass
public class ClassUtils extends org.springframework.util.ClassUtils { public class ClassUtil extends org.springframework.util.ClassUtils {
private final ParameterNameDiscoverer PARAMETERNAMEDISCOVERER = new DefaultParameterNameDiscoverer(); 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 // The method may be on an interface, but we need attributes from the target
// class. // class.
// If the target class is null, the method will be unchanged. // 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 // If we are dealing with method with generic parameters, find the original
// method. // method.
specificMethod = BridgeMethodResolver.findBridgedMethod(specificMethod); specificMethod = BridgeMethodResolver.findBridgedMethod(specificMethod);

6
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/HTMLFilter.java → 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开发团队-王翔 * @Author: entfrm开发团队-王翔
* @Date: 2022/2/19 * @Date: 2022/2/19
*/ */
public final class HTMLFilter { public final class HTMLFilterUtil {
/** /**
* regex flag union representing /si modifiers in php * regex flag union representing /si modifiers in php
**/ **/
@ -98,7 +98,7 @@ public final class HTMLFilter {
/** /**
* Default constructor. * Default constructor.
*/ */
public HTMLFilter() { public HTMLFilterUtil() {
vAllowed = new HashMap<>(); vAllowed = new HashMap<>();
final ArrayList<String> a_atts = new ArrayList<>(); final ArrayList<String> a_atts = new ArrayList<>();
@ -137,7 +137,7 @@ public final class HTMLFilter {
* @param conf map containing configuration. keys match field names. * @param conf map containing configuration. keys match field names.
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public HTMLFilter(final Map<String, Object> conf) { public HTMLFilterUtil(final Map<String, Object> conf) {
assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; assert conf.containsKey("vAllowed") : "configuration requires vAllowed";
assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags";

2
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/JasyptUtils.java → 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开发团队-王翔 * @Author: entfrm开发团队-王翔
* @Date: 2022/2/24 * @Date: 2022/2/24
*/ */
public class JasyptUtils { public class JasyptUtil {
public static void main(String[] args) { public static void main(String[] args) {
testEnvironmentProperties(); testEnvironmentProperties();

6
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/SpringContextHolder.java → 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 @Slf4j
@Service @Service
@Lazy(false) @Lazy(false)
public class SpringContextHolder implements ApplicationContextAware, DisposableBean { public class SpringContextHolderUtil implements ApplicationContextAware, DisposableBean {
private static ApplicationContext applicationContext = null; private static ApplicationContext applicationContext = null;
@ -36,7 +36,7 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB
*/ */
@Override @Override
public void setApplicationContext(ApplicationContext applicationContext) { public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextHolder.applicationContext = applicationContext; SpringContextHolderUtil.applicationContext = applicationContext;
} }
/** /**
@ -81,7 +81,7 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB
@Override @Override
@SneakyThrows @SneakyThrows
public void destroy() { public void destroy() {
SpringContextHolder.clearHolder(); SpringContextHolderUtil.clearHolder();
} }
} }

12
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/WebUtils.java → 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 @Slf4j
@UtilityClass @UtilityClass
public class WebUtils extends org.springframework.web.util.WebUtils { public class WebUtil extends org.springframework.web.util.WebUtils {
private final String BASIC_ = "Basic "; private final String BASIC_ = "Basic ";
@ -46,7 +46,7 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
* @return 是否ajax请求 * @return 是否ajax请求
*/ */
public boolean isBody(HandlerMethod handlerMethod) { public boolean isBody(HandlerMethod handlerMethod) {
ResponseBody responseBody = ClassUtils.getAnnotation(handlerMethod, ResponseBody.class); ResponseBody responseBody = ClassUtil.getAnnotation(handlerMethod, ResponseBody.class);
return responseBody != null; return responseBody != null;
} }
@ -56,8 +56,8 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
* @return cookie value * @return cookie value
*/ */
public String getCookieVal(String name) { public String getCookieVal(String name) {
if (WebUtils.getRequest().isPresent()) { if (WebUtil.getRequest().isPresent()) {
return getCookieVal(WebUtils.getRequest().get(), name); return getCookieVal(WebUtil.getRequest().get(), name);
} }
return null; return null;
} }
@ -152,8 +152,8 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
@SneakyThrows @SneakyThrows
public String getClientId() { public String getClientId() {
if (WebUtils.getRequest().isPresent()) { if (WebUtil.getRequest().isPresent()) {
String header = WebUtils.getRequest().get().getHeader(HttpHeaders.AUTHORIZATION); String header = WebUtil.getRequest().get().getHeader(HttpHeaders.AUTHORIZATION);
return splitClient(header)[0]; return splitClient(header)[0];
} }
return null; return null;

2
kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories

@ -1,4 +1,4 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.cloud.kicc.common.core.config.WebMvcConfiguration,\ com.cloud.kicc.common.core.config.WebMvcConfiguration,\
com.cloud.kicc.common.core.config.RestTemplateConfiguration,\ com.cloud.kicc.common.core.config.RestTemplateConfiguration,\
com.cloud.kicc.common.core.util.SpringContextHolder com.cloud.kicc.common.core.util.SpringContextHolderUtil

4
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; package com.cloud.kicc.common.log.aspect;
import com.cloud.kicc.system.api.entity.OperLog; 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.annotation.SysLog;
import com.cloud.kicc.common.log.event.SysLogEvent; import com.cloud.kicc.common.log.event.SysLogEvent;
import com.cloud.kicc.common.log.util.LogTypeEnum; import com.cloud.kicc.common.log.util.LogTypeEnum;
@ -49,7 +49,7 @@ public class SysLogAspect {
finally { finally {
Long endTime = System.currentTimeMillis(); Long endTime = System.currentTimeMillis();
operLog.setExecuteTime((endTime - startTime) + "毫秒"); operLog.setExecuteTime((endTime - startTime) + "毫秒");
SpringContextHolder.publishEvent(new SysLogEvent(operLog)); SpringContextHolderUtil.publishEvent(new SysLogEvent(operLog));
} }
return obj; return obj;

8
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.http.HttpRequest;
import cn.hutool.json.JSONUtil; 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 com.cloud.kicc.common.mock.annotation.WithMockOAuth2User;
import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
@ -37,7 +37,7 @@ public class WithMockSecurityContextFactory implements WithSecurityContextFactor
// 4. 上下文保存 token // 4. 上下文保存 token
DefaultOAuth2AccessToken accessToken = new DefaultOAuth2AccessToken(token); DefaultOAuth2AccessToken accessToken = new DefaultOAuth2AccessToken(token);
OAuth2ClientContext clientContext = SpringContextHolder.getBean(OAuth2ClientContext.class); OAuth2ClientContext clientContext = SpringContextHolderUtil.getBean(OAuth2ClientContext.class);
clientContext.setAccessToken(accessToken); clientContext.setAccessToken(accessToken);
return context; return context;
} }
@ -48,7 +48,7 @@ public class WithMockSecurityContextFactory implements WithSecurityContextFactor
* @return String token * @return String token
*/ */
private String getToken(WithMockOAuth2User oAuth2User) { private String getToken(WithMockOAuth2User oAuth2User) {
OAuth2ProtectedResourceDetails clientProperties = SpringContextHolder.getBean(OAuth2ProtectedResourceDetails.class); OAuth2ProtectedResourceDetails clientProperties = SpringContextHolderUtil.getBean(OAuth2ProtectedResourceDetails.class);
String result = HttpRequest.post(clientProperties.getAccessTokenUri()) String result = HttpRequest.post(clientProperties.getAccessTokenUri())
.basicAuth(clientProperties.getClientId(), clientProperties.getClientSecret()) .basicAuth(clientProperties.getClientId(), clientProperties.getClientSecret())
.form("username", oAuth2User.username()) .form("username", oAuth2User.username())
@ -66,7 +66,7 @@ public class WithMockSecurityContextFactory implements WithSecurityContextFactor
* @return user详细 * @return user详细
*/ */
private OAuth2Authentication getUser(String token) { private OAuth2Authentication getUser(String token) {
RemoteTokenServices tokenServices = SpringContextHolder.getBean(RemoteTokenServices.class); RemoteTokenServices tokenServices = SpringContextHolderUtil.getBean(RemoteTokenServices.class);
return tokenServices.loadAuthentication(token); return tokenServices.loadAuthentication(token);
} }

4
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; 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.http.HttpHeaders;
import org.springframework.security.oauth2.client.OAuth2ClientContext; import org.springframework.security.oauth2.client.OAuth2ClientContext;
import org.springframework.test.web.servlet.request.RequestPostProcessor; import org.springframework.test.web.servlet.request.RequestPostProcessor;
@ -21,7 +21,7 @@ public class OAuthMockKit {
*/ */
public static RequestPostProcessor token() { public static RequestPostProcessor token() {
return mockRequest -> { return mockRequest -> {
OAuth2ClientContext clientContext = SpringContextHolder.getBean(OAuth2ClientContext.class); OAuth2ClientContext clientContext = SpringContextHolderUtil.getBean(OAuth2ClientContext.class);
String token = clientContext.getAccessToken().getValue(); String token = clientContext.getAccessToken().getValue();
mockRequest.addHeader(HttpHeaders.AUTHORIZATION, String.format("Bearer: %s", token)); mockRequest.addHeader(HttpHeaders.AUTHORIZATION, String.format("Bearer: %s", token));
return mockRequest; return mockRequest;

2
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; package com.cloud.kicc.common.rocketmq.constant;
import com.cloud.kicc.common.core.util.StringPool; import com.cloud.kicc.common.core.constant.StringPool;
/** /**
*<p> *<p>

4
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; 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 com.cloud.kicc.common.security.override.KiccRedisTokenStore;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@ -26,7 +26,7 @@ public class TokenStoreAutoCleanScheduleConfiguration {
*/ */
@Scheduled(cron = "@hourly") @Scheduled(cron = "@hourly")
public void doMaintenance() { public void doMaintenance() {
KiccRedisTokenStore tokenStore = SpringContextHolder.getBean(KiccRedisTokenStore.class); KiccRedisTokenStore tokenStore = SpringContextHolderUtil.getBean(KiccRedisTokenStore.class);
long maintenance = tokenStore.doMaintenance(); long maintenance = tokenStore.doMaintenance();
log.debug("清理Redis ZADD 过期 token 数量: {}", maintenance); log.debug("清理Redis ZADD 过期 token 数量: {}", maintenance);
} }

4
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; package com.cloud.kicc.common.security.grant.provider;
import cn.hutool.extra.spring.SpringUtil; 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 com.cloud.kicc.common.security.service.KiccUserDetailsService;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
@ -85,7 +85,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica
// SSO NPE 处理 // SSO NPE 处理
String clientId; String clientId;
if (clientAuthentication == null) { if (clientAuthentication == null) {
clientId = WebUtils.getRequest().get().getParameter("clientId"); clientId = WebUtil.getRequest().get().getParameter("clientId");
} }
else { else {
clientId = clientAuthentication.getName(); clientId = clientAuthentication.getName();

4
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.core.util.CharsetUtil;
import cn.hutool.http.HttpUtil; 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.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
@ -35,7 +35,7 @@ public class FormAuthenticationFailureHandler implements AuthenticationFailureHa
log.debug("表单登录失败:{}", exception.getLocalizedMessage()); log.debug("表单登录失败:{}", exception.getLocalizedMessage());
String url = HttpUtil.encodeParams(String.format("/token/login?error=%s", exception.getMessage()), String url = HttpUtil.encodeParams(String.format("/token/login?error=%s", exception.getMessage()),
CharsetUtil.CHARSET_UTF_8); CharsetUtil.CHARSET_UTF_8);
WebUtils.getResponse().sendRedirect(url); WebUtil.getResponse().sendRedirect(url);
} }
} }

4
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.io.IoUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HtmlUtil; 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 lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@ -80,7 +80,7 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
} }
// xss过滤 // xss过滤
json = new HTMLFilter().filter(json).trim(); json = new HTMLFilterUtil().filter(json).trim();
final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8")); final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8"));
return new ServletInputStream() { return new ServletInputStream() {
@Override @Override

4
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.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.ValidateCodeException; import com.cloud.kicc.common.core.exception.ValidateCodeException;
import com.cloud.kicc.common.core.api.R; 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.cloud.kicc.gateway.config.GatewayConfigProperties;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
@ -59,7 +59,7 @@ public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory {
return chain.filter(exchange); return chain.filter(exchange);
} }
boolean isIgnoreClient = configProperties.getIgnoreClients().contains(WebUtils.getClientId(request)); boolean isIgnoreClient = configProperties.getIgnoreClients().contains(WebUtil.getClientId(request));
try { try {
// 只有oauth和请求不在忽略客户端需要检查代码。 // 只有oauth和请求不在忽略客户端需要检查代码。
if (!isIgnoreClient) { if (!isIgnoreClient) {

11
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_M("M", "菜单模块类(菜单目录)"),
/**
* 菜单按钮
*/
MENU_F("F", "菜单按钮"),
/**
* 分割菜单重定向路由URL默认地址
*/
MENU_ROUTE_DEFAULT_URL("/dashboard/analysis", "分割菜单重定向路由URL默认地址"),
/** /**
* 菜单0,启动,根菜单标识 * 菜单0,启动,根菜单标识
*/ */
@ -30,6 +40,7 @@ public enum MenuEnum {
*/ */
MENU_1("1", "禁用"); MENU_1("1", "禁用");
/** /**
* *
*/ */

5
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; private String name;
/**
* 分割菜单重定向URL
*/
private String redirect;
/** /**
* 路由地址 * 路由地址
*/ */

23
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; package com.cloud.kicc.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.mapper.MenuMapper;
import com.cloud.kicc.system.service.MenuService; import com.cloud.kicc.system.service.MenuService;
import com.cloud.kicc.common.core.constant.RegexConstants; import com.cloud.kicc.common.core.constant.RegexConstants;
import com.cloud.kicc.system.util.MenuRouteUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -53,6 +53,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
if (MenuEnum.MENU_0.getValue().equals(menu.getParentId()) && !ReUtil.isMatch(RegexConstants.MATCHER_URL, menu.getPath())) { if (MenuEnum.MENU_0.getValue().equals(menu.getParentId()) && !ReUtil.isMatch(RegexConstants.MATCHER_URL, menu.getPath())) {
menuVo.setComponent("Layout"); menuVo.setComponent("Layout");
menuVo.setPath("/" + menu.getPath()); menuVo.setPath("/" + menu.getPath());
String redirect = handleRouteRedirect(menu);
menuVo.setRedirect(StrUtil.isNotBlank(redirect) ? redirect : MenuEnum.MENU_ROUTE_DEFAULT_URL.getValue());
} else { } else {
menuVo.setPath(menu.getPath()); menuVo.setPath(menu.getPath());
} }
@ -62,6 +64,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
.setIcon(menu.getIcon()) .setIcon(menu.getIcon())
.setHideMenu(MenuEnum.MENU_1.getValue().equals(menu.getHideMenu())) .setHideMenu(MenuEnum.MENU_1.getValue().equals(menu.getHideMenu()))
.setKeepAlive(menu.getKeepAlive().equals(MenuEnum.MENU_1.getValue()))); .setKeepAlive(menu.getKeepAlive().equals(MenuEnum.MENU_1.getValue())));
List<Menu> childrenMenus = menu.getChildren(); List<Menu> childrenMenus = menu.getChildren();
if (childrenMenus != null && childrenMenus.size() > 0 && MenuEnum.MENU_M.getValue().equals(menu.getType())) { if (childrenMenus != null && childrenMenus.size() > 0 && MenuEnum.MENU_M.getValue().equals(menu.getType())) {
menuVo.setChildren(buildMenuRoute(childrenMenus)); menuVo.setChildren(buildMenuRoute(childrenMenus));
@ -71,6 +74,20 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
return menuVoList; return menuVoList;
} }
/** 处理顶端分割菜单点击路由重定向 */
public static String handleRouteRedirect(Menu menu){
String redirect = menu.getPath();
List<Menu> 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 @Override
public List<Menu> buildMenuTree(List<Menu> list, String parentId) { public List<Menu> buildMenuTree(List<Menu> list, String parentId) {
List<Menu> menuList = new ArrayList(); List<Menu> menuList = new ArrayList();

44
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;
/**
*<p>
* 菜单路由工具
*</p>
*
* @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();
}
}

1
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml

@ -7,6 +7,7 @@
<result property="name" column="name"/> <result property="name" column="name"/>
<result property="parentId" column="parent_id"/> <result property="parentId" column="parent_id"/>
<result property="type" column="type"/> <result property="type" column="type"/>
<result property="redirect" column="redirect"/>
<result property="path" column="path"/> <result property="path" column="path"/>
<result property="component" column="component"/> <result property="component" column="component"/>
<result property="permission" column="permission"/> <result property="permission" column="permission"/>

Loading…
Cancel
Save