如何配置shiro的记住我功能:RememberMe

2025-11-07 01:39:06

1、RememberMe指的是记住我的功能,也就是说在使用RememberMe处理的时候就标识可以无需登录就可以进行操作访问了。整个的RememberMe的操作都是基于配置实现的。

1、RememberMe功能是一定是需要在客户端保留有一个Cookie的数据,那么这个时候就一定要配置Cookie的操作模板:

<!-- 配置需要向Cookie中保存数据的配置模板RememberMe -->

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

                <!-- 设置Cookie在浏览器中保存内容的名字,由用户自己来设置 -->

                <constructor-arg value="baidu-session"></constructor-arg>

                <!-- 保证该系统不会受到跨域的脚本操作攻击 -->

                <property name="httpOnly" value="true"></property>

                

                <!-- 定义Cookie的过期时间,单位为秒,如果设置为-1标识浏览器关闭就失效 -->

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

       </bean>

如何配置shiro的记住我功能:RememberMe

2、随后还需要配置RememberMe的管理器:org.apache.shiro.web.mgt.CookieRememberMeManager。

<!-- 配置RememberMe功能的程序管理类 -->

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

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

        </bean>

如何配置shiro的记住我功能:RememberMe

3、在安全管理器里面进行RememberMe功能的加入:

<!-- 配置SecurityManager的管理 -->

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

                <!-- 配置你需要使用的Realms -->

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

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

                

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

                

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

        </bean>

如何配置shiro的记住我功能:RememberMe

4、如果要进行RememberMe功能操作,实际上还需要在表单上进行一个复选框的添加。

1、这个复选框的内容是需要严格控制好的,只能够使用“true”。

修改login.jsp页面:

<body>

        <form action="loginUrl" method="post">

                用户名:<input type="text" name="mid" /><br />

                密码:<input type="password" name="password"/> <br />

                <input type="checkbox" name="rememberMe" value="true" />记住密码<br />

                <input type="submit" value="登录"/>

        </form>

</body>

如何配置shiro的记住我功能:RememberMe

5、修改登陆控制器:

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

如何配置shiro的记住我功能:RememberMe

6、增加一个不需要登录只需要记住我就可以访问的路径。

<!-- shiro里面需要针对于所有的路径进行配置 -->

                <property name="filterChainDefinitions">

                        <value>

                                /loginUrl=authc

                                /*=anon

                                        /messages/**=authc

                                        /admin*=authc

                                        /welcome.jsp=authc,perms[member:add]

                                        /pages/news/**=authc

                                        /infos/**=user

                        </value>

                </property>

如何配置shiro的记住我功能:RememberMe

7、通过这些合理的权限的配置,就可以对要进行请求的路径进行有效控制。shiro针对RememberMe的功能不是简单的进行了用户名或密码的保存就可以了,往往需要进行密码加密的功能。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢