From f72028433dde26d2434e8b4ab5f89c35808c275b Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Sat, 16 Sep 2023 15:41:24 +0800 Subject: [PATCH] chore: AbstractAuth weakly consistent --- .../security/aspect/SecurityInnerAspect.java | 4 +++- .../config/ResourceServerAutoConfiguration.java | 10 ++++------ .../exp/KiccLocalResourceServerTokenServices.java | 2 +- .../exp/KiccResourceServerConfigurerAdapter.java | 6 ++---- .../exp/ResourceAuthExceptionEntryPoint.java | 8 ++++---- .../impl/KiccAppUserDetailsServiceImpl.java | 4 +++- .../service/impl/KiccUserDetailsServiceImpl.java | 4 +++- pom.xml | 15 +++++++++++++++ 8 files changed, 35 insertions(+), 18 deletions(-) diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/aspect/SecurityInnerAspect.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/aspect/SecurityInnerAspect.java index f5259ecc..3e2df34e 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/aspect/SecurityInnerAspect.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/aspect/SecurityInnerAspect.java @@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.Ordered; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.security.access.AccessDeniedException; @@ -29,7 +30,8 @@ import javax.servlet.http.HttpServletRequest; @RequiredArgsConstructor public class SecurityInnerAspect implements Ordered { - private final HttpServletRequest request; + @Autowired(required = false) + private HttpServletRequest request; @SneakyThrows @Around("@within(inner) || @annotation(inner)") diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/ResourceServerAutoConfiguration.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/ResourceServerAutoConfiguration.java index 9a754782..e8360828 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/ResourceServerAutoConfiguration.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/config/ResourceServerAutoConfiguration.java @@ -5,14 +5,11 @@ import com.cloud.kicc.common.security.exp.PermissionService; import com.cloud.kicc.common.security.exp.PermitAllUrlProperties; import com.cloud.kicc.common.security.exp.ResourceAuthExceptionEntryPoint; import com.cloud.kicc.common.security.override.KiccBearerTokenExtractor; -import com.cloud.kicc.common.security.properties.CasProperties; -import com.cloud.kicc.common.security.template.UserProviderTemplate; -import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices; -import org.springframework.security.oauth2.provider.token.TokenStore; /** *
@@ -39,8 +36,9 @@ public class ResourceServerAutoConfiguration { /** 细粒化客户端认证异常处理 */ @Bean - public ResourceAuthExceptionEntryPoint resourceAuthExceptionEntryPoint(ObjectMapper objectMapper) { - return new ResourceAuthExceptionEntryPoint(objectMapper); + @ConditionalOnMissingBean + public ResourceAuthExceptionEntryPoint resourceAuthExceptionEntryPoint() { + return new ResourceAuthExceptionEntryPoint(); } /** 扩展资源服务器令牌服务 */ diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java index 772546f7..ab564a54 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java @@ -49,7 +49,7 @@ public class KiccLocalResourceServerTokenServices implements ResourceServerToken @Autowired private TokenStore tokenStore; - @Autowired + @Autowired(required = false) private UserProviderTemplate userProviderTemplate; @Autowired diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccResourceServerConfigurerAdapter.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccResourceServerConfigurerAdapter.java index 2cabfe53..ac307a9a 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccResourceServerConfigurerAdapter.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccResourceServerConfigurerAdapter.java @@ -8,14 +8,13 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter; import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer; -import org.springframework.security.oauth2.provider.token.RemoteTokenServices; import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices; /** *
* 资源服务配置适配器 * 覆盖内部不合适的实现,实现适配 - * 1. 支持remoteTokenServices 负载均衡,后期出现 + * 1. todo: 支持remoteTokenServices 负载均衡 待实现 * 2. 支持 获取用户全部信息 * 3. 接口对外暴露,不校验 Authentication Header 头 *
@@ -29,8 +28,7 @@ public class KiccResourceServerConfigurerAdapter extends ResourceServerConfigure @Autowired protected ResourceAuthExceptionEntryPoint resourceAuthExceptionEntryPoint; - @Autowired - protected RemoteTokenServices remoteTokenServices; + //protected RemoteTokenServices remoteTokenServices; @Autowired private PermitAllUrlProperties permitAllUrl; diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java index 24286377..ff4e9ccd 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java @@ -1,13 +1,13 @@ package com.cloud.kicc.common.security.exp; import cn.hutool.http.HttpStatus; -import com.cloud.kicc.common.core.constant.CommonConstants; import com.cloud.kicc.common.core.api.R; +import com.cloud.kicc.common.core.constant.CommonConstants; import com.cloud.kicc.common.core.enums.ExceptionEnum; import com.cloud.kicc.common.security.exception.UnConfiguredUserDataException; import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.InsufficientAuthenticationException; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.AuthenticationEntryPoint; @@ -25,10 +25,10 @@ import java.io.PrintWriter; * @Author: wangxiang4 * @Date: 2022/2/17 */ -@RequiredArgsConstructor public class ResourceAuthExceptionEntryPoint implements AuthenticationEntryPoint { - private final ObjectMapper objectMapper; + @Autowired + private ObjectMapper objectMapper; @Override @SneakyThrows diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java index 5eecbfe8..d1cc5a64 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java @@ -8,6 +8,7 @@ import com.cloud.kicc.common.security.template.UserProviderTemplate; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; /** @@ -22,7 +23,8 @@ import org.springframework.security.core.userdetails.UserDetails; @RequiredArgsConstructor public class KiccAppUserDetailsServiceImpl implements KiccUserDetailsService { - private final UserProviderTemplate userProviderTemplate; + @Autowired(required = false) + private UserProviderTemplate userProviderTemplate; /** * 手机号登录 diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java index 7d387bb9..ebc3ccae 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java @@ -6,6 +6,7 @@ import com.cloud.kicc.common.security.template.UserProviderTemplate; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Primary; import org.springframework.security.core.userdetails.UserDetails; @@ -22,7 +23,8 @@ import org.springframework.security.core.userdetails.UserDetails; @RequiredArgsConstructor public class KiccUserDetailsServiceImpl implements KiccUserDetailsService { - private final UserProviderTemplate userProviderTemplate; + @Autowired(required = false) + private UserProviderTemplate userProviderTemplate; /** * 用户名密码登录 diff --git a/pom.xml b/pom.xml index 6b25b313..9e01671c 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,7 @@