⚡ UserDetailsService 提供替换能力,方便独立授权服务器是,使用远程调用确认登录
This commit is contained in:
@@ -11,10 +11,23 @@
|
||||
|
||||
<artifactId>ballcat-auth-biz</artifactId>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.hccake</groupId>
|
||||
<artifactId>ballcat-common-security</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.hccake</groupId>
|
||||
<artifactId>ballcat-spring-boot-starter-redis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.hccake</groupId>
|
||||
<artifactId>ballcat-system-model</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.hccake</groupId>
|
||||
<artifactId>ballcat-system-biz</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.anji-plus</groupId>
|
||||
<artifactId>captcha</artifactId>
|
||||
|
||||
@@ -2,8 +2,9 @@ package com.hccake.ballcat.auth.configuration;
|
||||
|
||||
import com.hccake.ballcat.auth.CustomTokenEnhancer;
|
||||
import com.hccake.ballcat.auth.OAuth2AuthorizationServerProperties;
|
||||
import com.hccake.ballcat.auth.UserInfoCoordinator;
|
||||
import com.hccake.ballcat.auth.confogurer.CustomAuthorizationServerConfigurer;
|
||||
import com.hccake.ballcat.auth.userdetails.SysUserDetailsServiceImpl;
|
||||
import com.hccake.ballcat.auth.userdetails.UserInfoCoordinator;
|
||||
import com.hccake.ballcat.auth.configurer.CustomAuthorizationServerConfigurer;
|
||||
import com.hccake.ballcat.common.redis.config.CachePropertiesHolder;
|
||||
import com.hccake.ballcat.common.security.component.CustomRedisTokenStore;
|
||||
import com.hccake.ballcat.common.security.constant.SecurityConstants;
|
||||
@@ -11,12 +12,16 @@ import com.hccake.ballcat.common.security.exception.CustomAuthenticationEntryPoi
|
||||
import com.hccake.ballcat.common.security.exception.CustomWebResponseExceptionTranslator;
|
||||
import com.hccake.ballcat.common.security.properties.SecurityProperties;
|
||||
import com.hccake.ballcat.common.security.util.PasswordUtils;
|
||||
import com.hccake.ballcat.system.service.SysUserService;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
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.Configuration;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.security.oauth2.common.exceptions.OAuth2Exception;
|
||||
import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator;
|
||||
@@ -87,13 +92,34 @@ public class AuthorizationAutoConfiguration {
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户信息协调者
|
||||
* @return UserInfoCoordinator
|
||||
* 用户详情处理类
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public UserInfoCoordinator userInfoCoordinator() {
|
||||
return new UserInfoCoordinator();
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnClass(SysUserService.class)
|
||||
@ConditionalOnMissingBean(UserDetailsService.class)
|
||||
static class UserDetailsServiceConfiguration {
|
||||
|
||||
/**
|
||||
* 用户详情处理类
|
||||
* @return SysUserDetailsServiceImpl
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public UserDetailsService userDetailsService(SysUserService sysUserService,
|
||||
UserInfoCoordinator userInfoCoordinator) {
|
||||
return new SysUserDetailsServiceImpl(sysUserService, userInfoCoordinator);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户信息协调者
|
||||
* @return UserInfoCoordinator
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public UserInfoCoordinator userInfoCoordinator() {
|
||||
return new UserInfoCoordinator();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.hccake.ballcat.auth.confogurer;
|
||||
package com.hccake.ballcat.auth.configurer;
|
||||
|
||||
import com.hccake.ballcat.auth.CustomAccessTokenConverter;
|
||||
import com.hccake.ballcat.auth.SysUserDetailsServiceImpl;
|
||||
import com.hccake.ballcat.auth.mobile.MobileTokenGranter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -10,6 +9,7 @@ import org.springframework.security.authentication.AuthenticationManager;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
|
||||
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurer;
|
||||
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
|
||||
@@ -40,7 +40,7 @@ public class CustomAuthorizationServerConfigurer implements AuthorizationServerC
|
||||
|
||||
private final TokenStore tokenStore;
|
||||
|
||||
private final SysUserDetailsServiceImpl sysUserDetailsService;
|
||||
private final UserDetailsService userDetailsService;
|
||||
|
||||
private final TokenEnhancer tokenEnhancer;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class CustomAuthorizationServerConfigurer implements AuthorizationServerC
|
||||
@Override
|
||||
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
|
||||
// @formatter:off
|
||||
endpoints.tokenStore(tokenStore).userDetailsService(sysUserDetailsService)
|
||||
endpoints.tokenStore(tokenStore).userDetailsService(userDetailsService)
|
||||
.authenticationManager(authenticationManager)
|
||||
// 自定义token
|
||||
.tokenEnhancer(tokenEnhancer)
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.hccake.ballcat.auth;
|
||||
package com.hccake.ballcat.auth.userdetails;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hccake.ballcat.common.security.constant.TokenAttributeNameConstants;
|
||||
@@ -13,7 +13,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -23,7 +22,6 @@ import java.util.*;
|
||||
* @date 2019/9/25 20:44
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SysUserDetailsServiceImpl implements UserDetailsService {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.hccake.ballcat.auth;
|
||||
package com.hccake.ballcat.auth.userdetails;
|
||||
|
||||
import com.hccake.ballcat.system.model.entity.SysUser;
|
||||
|
||||
Reference in New Issue
Block a user