Java之品优购课程讲义_day04(8)

5.1 认证类调用服务方法
修改 UserDetailsServiceImpl.java ,添加属性和 setter 方法 ,修改 loadUserByUsername 方法

/**

*认证类

*@author  Administrator

*

*/

public  class  UserDetailsServiceImpl  implements  UserDetailsService  {

private  SellerService  sellerService;

public  void  setSellerService(SellerService  sellerService)  {

this.sellerService  =  sellerService;

}

@Override

public  loadUserByUsername(String  username)  throws
UsernameNotFoundException  {

System.out.println("经过了 UserDetailsServiceImpl");

//构建角色列表

List<GrantedAuthority>  grantAuths=new ArrayList();

grantAuths.add(new  SimpleGrantedAuthority("ROLE_SELLER"));

//得到商家对象

TbSeller  seller  =  sellerService.findOne(username);

if(seller!=null){ if(seller.getStatus().equals("1")){

}else{
}

}else{

}

}

}
修改 pinyougou-shop-web 的 spring-security.xml ,添加如下配置
经过上述修改后,在登陆页输入用户名和密码与数据库一致即可登陆 。 5.1 密码加密 5.4.1 BCrypt 加密算法 用户表的密码通常使用 MD5 等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的 salt(盐值)加密。 特定字符串是程序代码中固定的,salt 是每个密码单独随机,一般给用户表加一个字段单独存储,比较麻烦。 BCrypt 算法将 salt 随机并混入最终加密后的密码,验证时也无需单独提供之前的 salt,从而无需单独处理 salt 问题。 5.4.1 商家入驻密码加密 商家申请入驻的密码要使用 BCrypt 算法进行加密存储,修改 SellerController.java 的 add 方法 ``` /**[/size][/font][/align][font=微软雅黑][size=3] *增加 *@param seller *@return */ @RequestMapping("/add") public Result add(@RequestBody TbSeller seller){ //密码加密 BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); String password = passwordEncoder.encode(seller.getPassword()); seller.setPassword(password); try { sellerService.add(seller); return new Result(true, "增加成功"); } catch (Exception e) { e.printStackTrace(); return new Result(false, "增加失败"); } } ``` 5.4.1 加密配置 修改 pinyougou-shop-web 的 spring-security.xml ,添加如下配置 ` ` 修改认证管理器的配置 ``` ``` 5.5 显示登录名 参照运营商后台 5.6 退出登录 参照运营商后台

猜你喜欢

转载自blog.51cto.com/13517854/2159037