您可以創建自定義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