`
Ydoing
  • 浏览: 105919 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Web中rememberMe 功能(shiro的实现)

 
阅读更多

记住我(RememberMe)的功能

Shiro 提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,基本流程如下:
- 1、首先在登录页面选中RememberMe 然后登录成功;如果是浏览器登录,一般会把RememberMe的Cookie 写到客户端并保存下来;
- 2、关闭浏览器再重新打开;会发现浏览器还是记住你的;
- 3、访问一般的网页服务器端还是知道你是谁,且能正常访问;
- 4、但是比如我们访问淘宝时,如果要查看我的订单或进行支付时,此时还是需要再进行身份认证的,以确保当前用户还是你.

配置基于Form表单的身份验证过滤器

    <bean id="formAuthenticationFilter" class="org.apache.shiro.web.filter.authc.FormAuthenticationFilter">
        <property name="usernameParam" value="username" />
        <property name="passwordParam" value="password" />
        <property name="rememberMeParam" value="rememberMe" />
        <property name="loginUrl" value="/api/user/login" />
    </bean> 

拦截器配置

/** = user

使用shiro默认的user拦截器。该拦截器要求用户已经登录或者勾选了RememberMe,就可以放行。

前端

这里写图片描述

shiro设置rememberMe

用firefox浏览器可以看出,shiro在返回响应的时候,首先删除了之前的rememberMe的cookie,然后重新在客户端设置了rememberMe的cookie。

这里写图片描述

cookie详细信息,shiro默认设置有效期为1年
这里写图片描述

用户再次访问时,浏览器会发送这个rememberMe的cookie给服务端,无需再登录即可访问
这里写图片描述

其他说明

源码托管在https://github.com/Jdoing/myweb
参考http://jinnianshilongnian.iteye.com/blog/2031823

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    springmvc+shiro实现记住我功能以及权限缓存.rar

    2. 实现RememberMe服务:配置RememberMeManager,例如设置Cookie的名称、路径、有效期等属性。 3. 缓存管理:配置CacheManager,如EhCache,设置缓存策略和过期时间。 4. 权限验证:在Controller或Service层,使用...

    web项目集成shirodemo

    7. **Remember Me**:Shiro提供了Remember Me服务,可以在用户下次访问时自动登录,提高用户体验。 8. **Cryptography支持**:Shiro内置了加密算法,如MD5、SHA等,可以用于密码存储和校验,保证数据安全性。 9. *...

    shiro相关实现例子以及shiro教程文档

    6. **Web集成**:展示如何在Web应用中使用Shiro,包括过滤器配置、Web安全设置等。 7. **实战案例**:提供实际应用场景,例如单点登录(SSO)、API权限控制等。 接下来是"shiro-example-master"示例项目。这个项目...

    shiro-web例子源代码

    Shiro-web是Shiro的Web部分,它提供了一系列过滤器(Filter)来处理HTTP请求,如RememberMe、FormAuthentication、SessionManagement等。这些过滤器可以配置在Web应用的`web.xml`中,形成一个安全拦截链。 3. **...

    shiro-1.7.1.zip

    例如,Shiro的RememberMe服务、Session管理以及CSRF防护等功能都在这个模块中实现。 3. **shiro-lang-1.7.1.jar**: 该组件包含了Shiro的表达式语言支持,如在角色和权限定义时使用SpEL(Spring Expression Language...

    shiro实现授权登陆验证

    - 在Shiro中,权限是细粒度的,可以是角色(Role)或者权限(Permission)。 - 当用户登录成功后,Shiro会自动加载该用户的权限信息。 - 使用`Subject.hasRole()`或`Subject.isPermitted()`来检查用户是否有特定...

    shiro jar包及源码下载

    5. **Web支持**:Shiro提供了一系列过滤器,可以直接集成到Servlet容器中,实现Web应用的安全控制,如登录检查、权限验证等。 6. **测试支持**:Shiro提供了安全测试工具,使得在单元测试和集成测试中模拟用户身份...

    Apache shiro1.2.4反序列化漏洞介绍.docx

    Apache Shiro是一个全面的Java安全框架,...总之,理解Apache Shiro的RememberMe机制以及其反序列化漏洞对于保障Web应用程序的安全至关重要。开发者应时刻关注软件的安全更新,并采取必要的措施来保护用户的敏感信息。

    SSH+shiro+tiles登录示例

    Shiro提供了拦截器(Filter)来实现这些功能,我们可以在Struts2的配置文件中配置Shiro Filter,使它在请求处理链中生效。 总的来说,"SSH+shiro+tiles登录示例"是一个基础的Web应用安全实践,它教会了初学者如何...

    Shiro的一个demo

    在这个"Shiro的一个demo"中,我们可以学习到如何在实际项目中集成和使用Shiro来实现基本的安全控制。 首先,我们从`readme.htm`开始。这个文件通常包含了关于演示项目的简要介绍和步骤说明。它可能解释了如何设置...

    跟我学Shiro-java开发+spring开发

    在本教程中,你将学习如何设置Shiro环境,配置Realms,实现身份验证和授权逻辑,处理会话管理和Remember Me功能,以及如何在Spring应用中集成Shiro,包括在Spring MVC和Spring Boot项目中的实践。此外,还会探讨如何...

    Shiro 视频教程+源码+课件

    内容涵盖 Shiro 认证、加密、授权、安全标签、安全注解、会话管理、缓存、Rememberme 等 JavaEE 企业级开发的核心技术。视频讲授过程中通过分析源代码使学员知其然更知其所以然。 【课程内容】 第一章 问候 Shiro ...

    【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.pdf

    1. **身份验证(Authentication)**:Shiro提供多种身份验证策略,如RememberMe(记住我)和Session超时机制。 2. **授权(Authorization)**:Shiro通过Role和Permission进行权限控制,可以在Controller、Service...

    中文版参考手册Shiro_API.rar

    4. **会话管理(Session Management)**:Shiro不仅可以管理应用程序中的会话,还可以跨多个应用服务器实现分布式会话管理。 在手册中,你可以找到以下内容的详细解释: 1. **快速入门**:介绍如何在项目中引入...

    shiro框架学习心得

    2. **Remember Me** 功能:Shiro 提供了一键登录(Remember Me)的功能,可以在用户勾选后,下次访问时自动登录。 3. **Session 管理**:Shiro 的Session管理可以与应用程序的Session协同工作,也可以独立管理,...

    Shiro 1.7.0所需jar包

    3. **shiro-web-1.7.0.jar**:Web支持模块,提供了与Servlet容器的集成,如Filter(如RememberMe、Session管理和 Logout Filter)和Web相关的API,适用于Web应用程序。 4. **shiro-guice-1.7.0.jar**:Guice集成...

    shiro中文文档

    5. **Web支持**:Shiro为Web应用提供了过滤器(Filters),可以轻松地集成到Servlet容器中,实现Web安全控制。 6. **简单API**:Shiro的API设计简洁,易于理解和使用,使得开发者能快速上手并实现安全功能。 7. **...

    Shiro1.2&中文文档.zip

    5. **Web 支持**:Shiro 可以很好地集成到Web应用程序中,提供基于HTTP Session的会话管理和各种Web过滤器,如Remember Me服务、CSRF防护等。 6. **测试支持**:Shiro 提供了易于使用的测试工具,帮助开发者在单元...

    【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.docx

    - Shiro还提供了RememberMe服务,可以实现用户下次访问时的自动登录。 - 通过`SessionListener`和`EventListeners`,可以实现对会话事件的监听,例如会话创建、更新、过期等。 综上,通过SpringBoot与Shiro的整合...

    apache shiro 实例

    5. **Web 支持**:Shiro 提供了处理 Web 应用安全的特性,如过滤器,可以方便地集成到 Servlet 容器中,实现登录、权限控制等功能。在实际应用中,Shiro 过滤器链配置是关键,它定义了请求如何被不同过滤器处理。 6...

Global site tag (gtag.js) - Google Analytics