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 ,添加如下配置

<!-- 引 用 dubbo 服 务 -->

<dubbo:application name="pinyougou-shop-web" />

<dubbo:registry address="zookeeper://192.168.25.129:2181"/>

<dubbo:reference id="sellerService" interface="com.pinyougou.sellergoods.service.SellerService" >

</dubbo:reference>

<beans:bean id="userDetailService" class="com.pinyougou.service.UserDetailsServiceImpl">

<beans:property name="sellerService" ref="sellerService"></bean:property>

</beans:bean> 经过上述修改后,在登陆页输入用户名和密码与数据库一致即可登陆 。 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 ,添加如下配置

<beans:bean id="bcryptEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" /> 修改认证管理器的配置

<!-- 认证管理器 -->

<authentication-manager  alias="authenticationManager">
 
<authentication-provider  user-service-ref='userDetailService'>
 
<password-encoder  ref="bcryptEncoder"></password-encoder>
 
</authentication-provider>
 
</authentication-manager>

5.5 显示登录名 参照运营商后台 5.6 退出登录 参照运营商后台