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{

 

 

 

 

}

 

 

}

 

 

}
<!-- 引 用 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,  "增加失败");

 

}

 

}


修改 pinyougou-shop-web 的 spring-security.xml ,添加如下配置5.4.1 加密配置

[AppleScript] 纯文本查看 复制代码

?

1

<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 退出登录

参照运营商后台

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值