在很多网站都有在登录的时候,比如说记住我 几天之内  只要再此打开这个网站,都不需要再登录的情况:

1、前台JSP增加 单选框:记住我 如

2、在处理登录的 Controller 代码中增加接收这个参数的变量如下图

默认情况下是 0    只有前台页面选中的时候,传过来  1

当 Controller 判断 isRememberMe  为 1 的时候,用户进行了记住我的动作,那么需要增加  token.setRememberMe(true); 操作

3、在shiro的配置文件中增加如下cookie配置:

 <!-- 记住密码Cookie -->
<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
<constructor-arg value="rememberMe"/>
<!-- 7天,采用spring el表达式来计算,方便修改 -->
<property name="maxAge" value="#{7 * 24 * 60 * 60}"/>
<!-- <property name="domain" value=".yzixi.com"/> -->
</bean> <!-- rememberMe管理器,cipherKey生成见{@code Base64Test.java} -->
<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
<property name="cookie" ref="rememberMeCookie"/>
</bean>

4、在 安全管理器  的  securityManager 中增加变量  rememberMeManager  配置,注意下面标红的属性

 <!-- 1、安全管理器 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="shiroDbRealm"></property>
<!-- 设置缓存管理器为 ehcache -->
<property name="cacheManager" ref="shiroEhcacheManager"></property>
<!-- 配置sessionManager,提供session管理 -->
<property name="sessionManager" ref="sessionManager"></property>
<!-- 配置记住我 -->
9 <property name="rememberMeManager" ref="rememberMeManager"></property>

</bean>

5、同时需要修改shiro 的过滤器的权限认证级别  注意下面的标红属性权限级别

由原来的

 <property name="filterChainDefinitions">
<value>
<!--
anon 不需要认证
authc 需要认证
user 验证通过或RememberMe登录的都可以
-->
<!-- 系统中的静态资源需要放行-->
/static/** = anon
<!-- 系统中登录验证码需要放行-->
/captcha.action = anon
<!-- 系统中登录动作需要放行-->
/login.action = anon
<!-- 系统中注册动作需要放行-->
/regist.action = anon
<!-- 系统中的所有资源、行为都需要认证-->
/** = authc
</value>
</property>

修改为:

 <property name="filterChainDefinitions">
<value>
<!--
anon 不需要认证
authc 需要认证
user 验证通过或RememberMe登录的都可以
-->
<!-- 系统中的静态资源需要放行-->
/static/** = anon
<!-- 系统中登录验证码需要放行-->
/captcha.action = anon
<!-- 系统中登录动作需要放行-->
/login.action = anon
<!-- 系统中注册动作需要放行-->
/regist.action = anon
<!-- 系统中的所有资源、行为都需要认证-->
/** = user
</value>
</property>

经过以上的开发,那么就完成 记住我的  功能。

题外话:假如  访问的网站存在二级域名、三级域名,那么需要增加一个配置:

域的配置 :

增加 domain的配置 并指定值 修改为:

shiro 实现 网站登录记住我功能 学习记录(四)的更多相关文章

  1. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  2. leveldb 学习记录(四)Log文件

    前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...

  3. 4.VUE前端框架学习记录四:Vue组件化编码2

    VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  4. Spring Security框架下实现两周内自动登录"记住我"功能

    本文是Spring Security系列中的一篇.在上一篇文章中,我们通过实现UserDetailsService和UserDetails接口,实现了动态的从数据库加载用户.角色.权限相关信息,从而实 ...

  5. leveldb 学习记录(四) skiplist补与变长数字

    在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...

  6. ThinkPHP3.2.2实现持久登录(记住我)功能的方法

    实现持久登录,即用户在登录时,勾选了"记住我"之后,无论是否关闭浏览器,只要不退出登录,在指定的时间内始终保持登录状态(缺点是在另一台电脑上登录过后,之前那台电脑就不能继续保持登录 ...

  7. VUE2.0实现购物车和地址选配功能学习第四节

    第四节 v-on实现金额动态计算 用¥金额 进行格式处理,可以使用原生js进行转换,但是在vuei,使用filter过滤器更加方便 注: 1.es6语法=>和import等 好处在于res参数后 ...

  8. shiro 集成spring 使用 redis作为缓存 学习记录(六)

    1.在applicationContext-redis.xml配置文件中增加如下: 申明一个cacheManager对象 用来注入到  shiro的   securityManager 属性  cac ...

  9. SpringMVC学习记录四——功能开发及参数绑定

    9       商品修改功能开发 9.1      需求 操作流程: 1.进入商品查询列表页面 2.点击修改,进入商品修改页面,页面中显示了要修改的商品(从数据库查询) 要修改的商品从数据库查询,根据 ...

随机推荐

  1. Hadoop的简单序列化框架

    Hadoop提供了一个加单的序列化框架API,用于集成各种序列化实现.该框架由Serialization实现. 其中Serialization是一个接口,使用抽象工厂的设计模式,提供了一系列和序列化相 ...

  2. CSS样式属性分类

    A 文字 1 font-family:字体名称 注意: 当指定多种字体时,用“,”分隔每种字体的名称 当字体名称包含两个以上分开的单词是,用“”把该字体名称括起来. 当样式规则外已经有“”时,用‘’代 ...

  3. Firewalld的panic模式

    原文地址:http://www.excelib.com/article/289/show Firewalld有一种Panic模式,Panic的单词含义为“恐慌”.“惊慌”,在firewalld中他表示 ...

  4. bzoj4598: [Sdoi2016]模式字符串

    Description 给出n个结点的树结构T,其中每一个结点上有一个字符,这里我们所说的字符只考虑大写字母A到Z,再给出长度为m 的模式串s,其中每一位仍然是A到z的大写字母.Alice希望知道,有 ...

  5. CentOS6.4安装辅助NIS的流程

    服务器端软件包安装 yum -y install yp-tools ypbind ypserv rpcbind 设置NIS的域名 echo 'NISDOMAIN=liebaonis.local' &g ...

  6. iBatisNet分布式事务的应用 MS SQL2008。

    所谓分布式事务,即多台数据库服务器在一个事务中运行,因此至少两台及以上的数据库服务器. 一.所有数据库服务器必须配置好MSDTC. 如何配置请大家搜索“MSDTC配置”即可. 大至的配置为: 1.开启 ...

  7. HTML转义字符表

  8. Windows下安装GCC

    1.GCC编译器的选择 Windows下最常见的安装GCC的方式有两种:Cygwin和MinGW.本文主要介绍MinGW的安装配置. 2.下载MinGW 下载地址:http://sourceforge ...

  9. mysqldumpl备份

    mysqldump --databases mydatabase --lock-all-tables --flush-logs mysqldump -h10. -uroot -p密码 --databa ...

  10. 搭建psdash 监控系统

    一.监控系统介绍 Psdash 是一款查看 Linux 系统信息的 web 面板,和另一款系统监控工具 Glances 一样,psDash 的系统信息的采集也是由 psutil 完成的.和 Glanc ...