我需要2个登录页面,并且都应该从数据库中查找登录信息。据我了解,这意味着:
我尝试这样做,但是当我有两个带有实现UserDetailsService的类的Bean时,看起来两者都没有使用(我还尝试仅在其中一个Security类中使用UserDetailsService,并且都定义了两个UserDetailsServices )。每个类如下:
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String user) throws UsernameNotFoundException {
/* ..... */
}
}
然后我自动装配WebSecurityConfigurerAdapter:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
/* filter */
}
@Autowired
CustomUserDetailsService customUserDetailsService;
}
(另一个WebSecurityConfigureAdapter具有@Order(1)注释)
答案 0 :(得分:0)
事实证明,将其添加到安全性类有助于:
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(customUserDetailsService);
}
(如果有多个UserDetailsService,则似乎无法自动选择同一安全级别中的自动连线)