Java 是否可以有2个UserDetailsService(每个WebSecurity配置适配器一个)?

Java 是否可以有2个UserDetailsService(每个WebSecurity配置适配器一个)?,java,spring,spring-security,Java,Spring,Spring Security,我需要2个登录页面,两者都应该从数据库中查找登录信息。按照我的理解,这意味着: 我需要2个扩展WebSecurity配置适配器的类 因为我需要从一个数据库中查找信息,所以需要两个实现UserDetailsService的类。 我曾经尝试过这样做,但是当我有两个bean和实现UserDetailsService的类时,看起来两个bean都没有使用,我还尝试在其中一个安全类中只使用UserDetailsService,并且定义了两个UserDetailsService。每个类都是这样的: @Serv

我需要2个登录页面,两者都应该从数据库中查找登录信息。按照我的理解,这意味着:

我需要2个扩展WebSecurity配置适配器的类 因为我需要从一个数据库中查找信息,所以需要两个实现UserDetailsService的类。 我曾经尝试过这样做,但是当我有两个bean和实现UserDetailsService的类时,看起来两个bean都没有使用,我还尝试在其中一个安全类中只使用UserDetailsService,并且定义了两个UserDetailsService。每个类都是这样的:

@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

您能否澄清两个登录页面和两个用户表的不同之处?我想知道根据角色区分用户是否是覆盖您的案例的另一种方式