Shiro入门-rememberMe

来源:互联网 发布:i hope it too 编辑:程序博客网 时间:2024/06/04 22:00

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

用户身份实现java.io.Serializable接口
向cookie记录身份信息需要用户身份信息对象实现序列化接口

配置rememeberMeManager spring-shiro.xml

<!-- securityManager安全管理器 --><bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">    <property name="realm" ref="customRealm" />    <!-- 注入缓存管理器 -->    <property name="cacheManager" ref="cacheManager"/>    <!-- 注入session管理器 -->    <property name="sessionManager" ref="sessionManager" />    <!-- 记住我 -->    <property name="rememberMeManager" ref="rememberMeManager"/>    </bean><!-- rememberMeManager管理器,写cookie,取出cookie生成用户信息 --><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">    <!-- rememberMe是cookie的名字 -->    <constructor-arg value="rememberMe" />    <!-- 记住我cookie生效时间30天 -->    <property name="maxAge" value="2592000" /></bean>

配置rememberMe的input名称 spring-shiro.xml

<!-- 自定义form认证过虑器 --><!-- 基于Form表单的身份验证过滤器,不配置将也会注册此过虑器,表单中的用户账号、密码及loginurl将采用默认值,建议配置 --><bean id="formAuthenticationFilter"     class="cn.itcast.ssm.shiro.CustomFormAuthenticationFilter ">    <!-- 表单中账号的input名称 -->    <property name="usernameParam" value="username" />    <!-- 表单中密码的input名称 -->    <property name="passwordParam" value="password" />    <!-- 记住我input的名称 -->    <property name="rememberMeParam" value="rememberMe"/></bean>

测试

自动登陆后,需要查看 cookei是否有rememberMe

使用UserFilter
如果设置记住我,下次访问某些url时可以不用登陆。将记住我即可访问的地址配置让UserFilter拦截 spring-shiro.xml

 <!-- 配置记住我或认证通过可以访问的地址 -->/index.jsp  = user /first.action = user/welcome.jsp = user
0 0