1 // 自定義驗(yàn)證類UserDetailsService 實(shí)現(xiàn)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 *構(gòu)建角色列表 13 */ 14 // 權(quán)限集合 15 List<GrantedAuthority> authList = new ArrayList<>(); 16 // 具體具有什么的權(quán)限 17 authList.add(new SimpleGrantedAuthority("ROLE_SELLER")); 18 //1 判斷用戶名是否為null 如果為null 直接返回null 19 if(username==null){ 20 return null; 21 } 22 23 //得到商家對(duì)象 24 25 //2 根據(jù)用戶名到數(shù)據(jù)庫查詢 用戶對(duì)象 26 Seller seller = sellerService.findOne(username); 27 //3 如果用戶查不到 返回null 28 if(seller!=null){ 29 //4 如果用戶對(duì)象查到了 判斷用戶審核 是否通過 如果未通過返回null 30 if("1".equals(seller.getStatus())){ 31 //5 返回user 對(duì)象 將用戶名 密碼 返回權(quán)限集合 32 return new User(username,seller.getPassword(),authList); 33 } 34 35 } 36 return null; 37 //6 框架幫助比對(duì)用戶名和密碼是否匹配 38 } 39 }
浙公網(wǎng)安備 33010602011771號(hào)