Shiro

SpringBoot+Shiro学习(八):RememberMe

2018-09-06  本文已影响7人  Hiwayz

这一章比较简单,就不多说了,上代码:

/**  
  * cookie对象;  
  * rememberMeCookie()方法是设置Cookie的生成模版,比如cookie的name,cookie的有效时间等等。  
  * @return  
 */  
@Bean  
public SimpleCookie rememberMeCookie(){  
      //System.out.println("ShiroConfiguration.rememberMeCookie()");  
      //这个参数是cookie的名称
      SimpleCookie simpleCookie = new SimpleCookie("rememberMe");  
      //<!-- 记住我cookie生效时间30天 ,单位秒;-->  
      simpleCookie.setMaxAge(259200);  
      return simpleCookie;  
}  
  
/**  
  * cookie管理对象;  
  * rememberMeManager()方法是生成rememberMe管理器,而且要将这个rememberMe管理器设置到securityManager中  
  * @return  
 */  
@Bean  
public CookieRememberMeManager rememberMeManager(){  
      //System.out.println("ShiroConfiguration.rememberMeManager()");  
      CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();  
      cookieRememberMeManager.setCookie(rememberMeCookie());  
      //rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)  
      cookieRememberMeManager.setCipherKey(Base64.decode("2AvVhdsgUs0FSA3SDFAdag=="));  
      return cookieRememberMeManager;  
}  
  
@Bean(name = "securityManager")  
public DefaultWebSecurityManager defaultWebSecurityManager(MyShiroRealm realm){  
      DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();  
      //设置realm  
      securityManager.setRealm(realm);  
      //用户授权/认证信息Cache, 采用redis缓存  
      securityManager.setCacheManager(redisCacheManager());  
      //注入记住我管理器  
      securityManager.setRememberMeManager(rememberMeManager());  
      return securityManager;  
}
boolean remeberme = true;//前端返回的是否记住我
UsernamePasswordToken token = new UsernamePasswordToken(name,password,rememberme);
//或
token.setRememberMe(remeberme );

到此,这一阶段的Shiro学习就到此结束了。日后学到了更深的技术点或者使用过程中有遇到什么坑就再更新。最后如果想看我的所有代码,可以上我的GitHub查看和下载:
https://github.com/hiwayzhu/SpringBoot-Shiro

上一篇 下一篇

猜你喜欢

热点阅读