Shiro进阶(四)Shiro之RememberMe

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/90181321

前言

      本章讲解一下Shiro的记住我的功能

方法

1.概念

首先要澄清一点的是,这里的记住我并不是记住用户名和密码

shiro的记住我是一种基于cookie实现的方式,特定的页面在关掉浏览器后(session消失)也可以进行访问的功能!

2.实现步骤

1)前台登录页面修改

如果需要记住我的功能,那么前台页面需要一个checkbox多选框来让用户进行勾选。

这里我就不进行说明了。丑一点没关系哈。

2)controller登录方法修改

3)修改shiro配置文件

<!-- 配置Shiro的SecurityManager -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
    <property name="realm" ref="userRealm"/>
    <property name="cacheManager" ref="cacheManager"/>
    <property name="sessionManager" ref="sessionManager"/>
    <property name="rememberMeManager" ref="rememberMeManager"/>
</bean>
<!-- rememberMeCookie -->
<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
    <constructor-arg value="rememberMe"/>
    <property name="httpOnly" value="true"/>
    <property name="maxAge" value="2592000"/><!-- 30天 -->
</bean>
<!-- rememberMe管理器 -->
<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
    <property name="cookie" ref="rememberMeCookie"/>
</bean>

 这里主要配置了cookie存在的有效期,我这里设置了30天。

4)在需要记住我访问的页面路径加入过滤器

上面显示student.jsp页面需要在浏览器关闭后也可以进行访问,那么我们在登录的时候勾选记住我就ok了!

注意:在验证程序的过程中我发现IE是无法验证出来的,我还不是很清楚为什么?,、这里我们来使用chrome验证:

进行登录,查找相关cookie:

我们可以发现,我们的cookie成功的出现,并且有效期一个月!

我们退出浏览器继续访问student.jsp:

我们发现,它依然可以访问。

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/90181321