shiro中rememberMe的使用

1.根据系统安全首先将用到的ActiveUser和SysPermission这两个类进行系列化接口

2.在安全管理气的属性中配置rememberMe,并设置失效时间,

3.在页面中添加rememberMe这个选项

4.在自定义的form认证过滤器中的bean属性中添加rememberMe

记住我

用户登陆选择“自动登陆”本次登陆成功会向cookie写身份信息,下次登陆从cookie中取出身份信息实现自动登陆。

 用户身份实现java.io.Serializable接口

cookie记录身份信息需要用户身份信息对象实现序列化接口,如下:

 

 public class ActiveUser  implements Serializable

 

 

 

 配置rememberMeManager

 

<!-- 安全管理器 -->

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">

<property name="realm" ref="userRealm" />

<property name="sessionManager" ref="sessionManager" />

<property name="cacheManager" ref="cacheManager"/>

<!-- 记住我 -->

<property name="rememberMeManager" ref="rememberMeManager"/>

</bean>

 

<!-- rememberMeManager管理器 -->

<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">

<property name="cookie" ref="rememberMeCookie" />

</bean>

<!-- 记住我cookie -->

<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">

<constructor-arg value="rememberMe" />

<!-- 记住我cookie生效时间30-->

<property name="maxAge" value="2592000" />

</bean>

 

 

 FormAuthenticationFilter配置

 

修改formAuthenticationFitler添加页面中“记住我checkbox”的input名称:

 

<bean id="formAuthenticationFilter"

class="cn.itcast.ssm.shiro.MyFormAuthenticationFilter">

<!-- 表单中账号的input名称 -->

<property name="usernameParam" value="usercode" />

<!-- 表单中密码的input名称 -->

<property name="passwordParam" value="password" />

<property name="rememberMeParam" value="rememberMe"/>

</bean>

 

 

登陆页面

login.jsp中添加“记住我”checkbox

 

<TR>

<TD></TD>

<TD>

<input type="checkbox" name="rememberMe" />自动登陆

</TD>

</TR>

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值