您可以创建自定义AuthenticationProvider
或使用DaoAuthenticationProvider
与您的自定义UserDetailsService
实施。
这里是第二个解决方案的Spring Java配置类的一个示例:
@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userService;
// ...
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authenticationProvider());
}
@Bean
public AuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
authenticationProvider.setPasswordEncoder(new ShaPasswordEncoder());
authenticationProvider.setUserDetailsService(userService);
return authenticationProvider;
}
}
你实现UserDetailsService
界面将包含具体到项目的网域,通过他们的用户名检索用户的逻辑。
如果您需要更详细的示例,请在下面留言,我会更新答案,但这应该会给您一个总体思路。
另外我建议阅读上述Spring类和接口的JavaDocs。
有很多这样的例子,搜索UserDetailsService。 – holmis83 2014-10-09 18:54:27
看看这个页面,它可以帮助你理解需要做什么,因为它有一个体面的例子http://igorristic.blogspot.com.au/2014/09/spring-mvc-and-security-basic-setup .html – Aeseir 2014-10-10 00:23:19