`
peterwanghao
  • 浏览: 128363 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache Shiro 的Remember Me

 
阅读更多

在Shiro中提供“记住我”的功能,其与已认证有着明显的区别:

l Remembered(记住我):一个记住我的Subject 不是匿名的,而且有一个已知的身份ID(也就是subject.getPrincipals()是非空的)。但是这个被记住的身份ID 是在之前的session 中被认证的。如果subject.isRemembered()返回true,则Subject 被认为是被记住的。

l Authenticated(已认证):一个已认证的Subject 是指在当前Session 中被成功地验证过了(也就是说,login方法被调用并且没有抛出异常)。如果subject.isAuthenticated()返回true 则认为Subject 已通过验证。

需要注意的是,Remembered和Authenticated 是互斥的——若其中一个为真则另一个为假,反之亦然。

可以通过一个例子来说明

下面是一个相当普遍的情况,有助于说明Remembered 和Authenticated之间区别的重要性。比方说,你正在访问Amazon.com。你已经登录成功并添加了几本书到你的购物车。但你心烦意乱地跑出去开会,却忘了注销。会议结束后,已经到了回家的时候,于是你离开了办公室。

第二天你工作的时候,你意识到你没有完成购买,于是你返回到amazon.com。这一次,Amazon“记得”你是谁,给出了你的欢迎页面,并仍然为你提供一些个性化的建议书籍。对Amazon而言,subject.isRemembered()将返回true。

但是,当你尝试访问你的帐户来更新你的信用卡信息为你书付账时会发生什么呢?尽管Amazon“记住”你(isRemembered()= = true),它不能保证你就是实际上的你(例如,也许一个同事正在使用你的计算机)。所以,在你能够执行像更新信用卡信息等敏感行为之前,Amazon 将强制让你登录,使它们能够保证你的身份。在登录后,你的身份已经被核实,同时对Amazon 而言,isAuthenticated()现在返回是true。

这种情况在许多类型的应用中发生的是如此的频繁,所以这些功能被内置在Shiro 中,这样你就能利用它来为你的应用服务了。现在,无论你使用的是isRemembered()还是isAuthenticated()来定制你的视图和工作流都由你来决定,但Shiro 将维持这一基本情况以防你需要它。


分享到:
评论

相关推荐

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

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

    Apache Shiro教程

    - **RememberMe**:允许用户在下次访问时自动登录。 - **Web支持**:Shiro可以方便地与Servlet容器集成,提供过滤器实现Web安全控制。 - **Caching**:支持缓存机制,减少对数据源的频繁访问,提高性能。 - **...

    Shiro-EXP:Apache Shiro 反序列化漏洞检测与利用工具,一键注入内存马

    与项目相关文章首发于:Shiro exp使用手册Shiro rememberMe反序列化漏洞漏洞原理Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie,服务端对rememberMe的cookie值...

    跟我学Shiro第13章Demo(RememberMe)

    "跟我学Shiro第13章Demo(RememberMe)"是一个实战教程,旨在帮助开发者理解并实现Shiro中的RememberMe特性。RememberMe功能允许用户在一段时间内免于重新登录,提高了用户体验。 在这个Demo中,我们将探讨以下几个...

    SHIRO-550:Shiro RememberMe 1.2.4反序列化突破

    Shiro RememberMe 1.2.4反序列化突破(SHIRO-550)commons-collections-3.2.1.jar java -jar ysoserial-0.0.6-SNAPSHOT-all.jar JRMPClient "10.10.20.166:12345" |python exp.py java -cp ysoserial-0.0.6-SNAPSHOT...

    Apache Shiro中文开发文档.pdf

    ### Apache Shiro 开发知识点详解 #### 一、Apache Shiro 概述 - **定义**:Apache Shiro 是一款强大且灵活的开源安全框架,它致力于简化应用程序的安全性问题,包括身份验证(Authentication)、授权...

    Apache Shiro中文版使用手册

    // "RememberMe" built-in: token.setRememberMe(true); ``` **3.3 “记住我”功能** - **RememberMeAuthenticationToken** 接口支持“记住我”功能。 - 已记住的用户是非匿名用户,可以通过 `subject....

    apache shiro 实例

    6. **Remember Me 功能**:Shiro 的 Remember Me 功能允许用户在一段时间内无须再次登录,提高了用户体验。这通常通过在客户端存储持久化的身份验证令牌来实现。 7. **Cryptography(加密算法)**:Shiro 提供了...

    2020护网行动-攻防演练弹药库.docx

    【Apache Shiro RememberMe 反序列化漏洞 (CVE-2016-4437)】 Apache Shiro 是一个广泛使用的 Java 安全框架,它在企业的安全架构中扮演重要角色。2016年,Apache Shiro 出现了一个严重的安全漏洞,即 CVE-2016-4437...

    Apache_Shiro参考手册中文版.zip

    Apache_Shiro参考手册中文版 Introduction to Apache Shiro What is Apache Shiro? ... 为没有关联到登录的用户启用"Remember Me"服务 ... 以及更多——全部集成到紧密结合的易于使用的 API 中。

    CVE-2016-4437 Shiro550 & Shiro721 RememberMe Padding Oracle 漏洞利用

    CVE-2016-4437 Shiro550 & Shiro721 RememberMe Padding Oracle Shiro721 RememberMe Padding Oracle影响版本: - Apache Shiro 1.2.5,1.2.6,1.3.0,1.3.1,1.3.2,1.4.0-RC2,1.4.0,1.4.1 CVE-2016-4437 ...

    apache shiro文档

    Shiro 提供了简单易用的 API 来处理登录验证,包括 Remember Me 功能,可以让用户在一定时间内免密登录。 2. **授权**:授权是控制用户访问特定资源的过程。Shiro 提供了基于角色的访问控制(RBAC),你可以通过...

    2020攻防演练弹药库.docx

    1. **Apache Shiro RememberMe 反序列化漏洞 (Shiro-550, CVE-2016-4437)** 这个漏洞源于RememberMe功能,该功能允许用户在下次访问时自动登录。当RememberMe cookie被恶意构造并反序列化时,攻击者可以执行任意...

    apache-shiro教程完整版.7z

    Shiro 提供了Remember Me服务,使得用户在一段时间内登录系统无需再次输入凭证。 2. **授权**:权限控制是Shiro 的另一重要功能,它允许你定义哪些用户可以访问哪些资源。Shiro 支持角色(Role)和权限(Permission...

    apache shiro 开发文档

    ### Apache Shiro 开发文档详解 #### 一、Apache Shiro 概述 Apache Shiro 是一款强大且灵活的开源安全框架,旨在简洁地解决身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)...

    ApacheShiro复现记录1

    Apache Shiro复现记录1记录了一个典型的反序列化攻击案例,涉及到了ysoserial.jar工具、JRMPListener、bash反弹shell、base64编码、nc工具、Shiro.py工具、rememberMe Cookie和Apache Shiro漏洞等知识点。

    Apache_Shiro参考手册中文版

    10. RememberMe 功能:用户在会话中被记住,他们就无需在每次访问时都重新登录。 Shiro支持所有类型的应用程序,从简单的命令行程序到大型企业级应用,且不强制依赖于特定的第三方框架、容器或应用服务器。Shiro的...

    shiro jar包及源码下载

    例如,它支持Remember Me服务,允许用户在一段时间内无须再次登录。 2. **授权**:Shiro的权限控制十分强大,可以基于角色(Role)或权限(Permission)进行粒度控制。它可以控制对特定资源的访问,支持通配符权限...

    Apache Shiro使用手册 共22页.pdf

    Shiro 提供了多种认证机制,例如用户名/密码认证、Remember Me 认证等。 2. 授权(Authorization):访问控制,控制用户能够访问应用中的哪些内容,比如资源、Web 页面等等。Shiro 的授权机制可以根据用户的角色、...

    Apache_Shiro_reference 使用文档(中文版) 共92页.pdf

    - RememberMe功能:Shiro可以记住用户的身份信息,允许用户在之后的会话中无需重复登录。 Shiro适用于各种类型的应用程序,无论是最小的命令行程序还是大型的分布式Web应用。Shiro并不强依赖于其他第三方框架、容器...

Global site tag (gtag.js) - Google Analytics