本文主要是介绍Spring Security 自定义身份认证处理器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
我们可以通过继承AuthenticationProvider
或者其实现来完成自定义身份认证处理器
通常身份验证处理器主要是完成对用户名密码的验证和判断用户时候可用等
实现案例
以下是实现方法
1. 继承于AuthenticationProvider
new AuthenticationProvider() {@Overridepublic Authentication authenticate(Authentication authentication) throws AuthenticationException {// 进行身份认证的方法if ("admin".equals(authentication.getPrincipal()) && "123456".equals(authentication.getCredentials())) {List<GrantedAuthority> grantedAuthorities = Arrays.asList(new SimpleGrantedAuthority("admin"));UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(authentication.getPrincipal(), authentication.getAuthorities(), grantedAuthorities);token.setDetails(authentication.getDetails());return token;}else{throw new BadCredentialsException("账号密码错误");}}@Overridepublic boolean supports(Class<?> aClass) {// 支持何种类型的身份认证return UsernamePasswordAuthenticationToken.class.isAssignableFrom(aClass);}
}
2. 在AuthenticationManager
中使用这个Provider
处理器即可
// 提交给实现 ProviderManager 使用
new ProviderManager(providers);
这篇关于Spring Security 自定义身份认证处理器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!