shiro中rememberMe的使用

来源:互联网 发布:开发app的软件 编辑:程序博客网 时间:2024/05/19 16:49

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>

 

 

 


原创粉丝点击