自定义验证类UserDetailsService 实现Security框架UserDetailsService的接口

Posted xxblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义验证类UserDetailsService 实现Security框架UserDetailsService的接口相关的知识,希望对你有一定的参考价值。

 1 // 自定义验证类UserDetailsService 实现Security框架UserDetailsService的接口
 2 public class UserDetailServiceImpl implements UserDetailsService {
 3 //修改UserDetailsServiceImpl.java ,添加属性和setter方法 ,修改loadUserByUsername方法
 4 private SellerService sellerService;
 5 public void setSellerService(SellerService sellerService){
 6 this.sellerService=sellerService;
 7 }
 8 @Override
 9 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
10 
11 /**
12 *构建角色列表
13 */
14 // 权限集合
15 List<GrantedAuthority> authList = new ArrayList<>();
16 // 具体具有什么的权限
17 authList.add(new SimpleGrantedAuthority("ROLE_SELLER"));
18 //1 判断用户名是否为null 如果为null 直接返回null
19 if(username==null){
20 return null;
21 }
22 
23 //得到商家对象
24 
25 //2 根据用户名到数据库查询 用户对象
26 Seller seller = sellerService.findOne(username);
27 //3 如果用户查不到 返回null
28 if(seller!=null){
29 //4 如果用户对象查到了 判断用户审核 是否通过 如果未通过返回null
30 if("1".equals(seller.getStatus())){
31 //5 返回user 对象 将用户名 密码 返回权限集合
32 return new User(username,seller.getPassword(),authList);
33 }
34 
35 }
36 return null;
37 //6 框架帮助比对用户名和密码是否匹配
38 }
39 }

 

以上是关于自定义验证类UserDetailsService 实现Security框架UserDetailsService的接口的主要内容,如果未能解决你的问题,请参考以下文章

三UserDetailsService与PasswordEncoder接口详解

三UserDetailsService与PasswordEncoder接口详解

使用SpringSecurity验证token

Spirng Security知识点整理

在 Spring Security 中使用 UserDetailSservice 使用电子邮件进行登录身份验证

项目一众筹网07_04_SpringSecurity记住我数据库登录-默认实现创建UserDetailsService类装配UserDetailsService怎么改源码