Java 是否可以有2个UserDetailsService(每个WebSecurity配置适配器一个)?
我需要2个登录页面,两者都应该从数据库中查找登录信息。按照我的理解,这意味着: 我需要2个扩展WebSecurity配置适配器的类 因为我需要从一个数据库中查找信息,所以需要两个实现UserDetailsService的类。 我曾经尝试过这样做,但是当我有两个bean和实现UserDetailsService的类时,看起来两个bean都没有使用,我还尝试在其中一个安全类中只使用UserDetailsService,并且定义了两个UserDetailsService。每个类都是这样的:Java 是否可以有2个UserDetailsService(每个WebSecurity配置适配器一个)?,java,spring,spring-security,Java,Spring,Spring Security,我需要2个登录页面,两者都应该从数据库中查找登录信息。按照我的理解,这意味着: 我需要2个扩展WebSecurity配置适配器的类 因为我需要从一个数据库中查找信息,所以需要两个实现UserDetailsService的类。 我曾经尝试过这样做,但是当我有两个bean和实现UserDetailsService的类时,看起来两个bean都没有使用,我还尝试在其中一个安全类中只使用UserDetailsService,并且定义了两个UserDetailsService。每个类都是这样的: @Serv
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String user) throws UsernameNotFoundException {
/* ..... */
}
}
然后我在WebSecurity配置适配器中自动连线:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
/* filter */
}
@Autowired
CustomUserDetailsService customUserDetailsService;
}
另一个websecurityconfiguredapter有@Order1注释,将其添加到安全类中有助于:
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(customUserDetailsService);
}
它似乎无法自动选择同一安全类中的自动连线,如果有多个UserDetails Service您能否澄清两个登录页面和两个用户表的不同之处?我想知道根据角色区分用户是否是覆盖您的案例的另一种方式