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

Apache Shiro Web应用整合-Remember Me服务

阅读更多

Shiro提供Remember服务,AuthenticationToken需要实现org.apache.shiro.authc.RememberMeAuthenticationToken接口,此接口提供了一个方法:

boolean isRememberMe();

如果该方法返回true,则Shiro 将会在整个会话中记住终端用户的身份ID

注:经常使用的UsernamePasswordToken 已经实现了RememberMeAuthenticationToken 接口,并支持rememberMe 登录。

编程方式

编程方式支持RememberMe服务,你可以通过类的接口将其值设为true。比如:

UsernamePasswordToken token = new UsernamePasswordToken(username, password);

token.setRememberMe(true);

SecurityUtils.getSubject().login(token);

表单提交方式

Web应用中,默认的认证过滤器是FormAuthenticationFilter。它读取一个名为‘rememberMe’表单值来支持 Remember Me 服务,此值是布尔型。比如在你的页面里有一个名为‘rememberMe’的checkbox

<form ...>

 

   Username: <input type="text" name="username"/> <br/>

   Password: <input type="password" name="password"/>

   ...

   <input type="checkbox" name="rememberMe" value="true"/>Remember Me? 

   ...

</form>

默认的FormAuthenticationFilter会寻找请求参数名为usernamepasswordrememberMe的值。如果你的参数名与这些默认值不同,你可以在FormAuthenticationFilter中进行配置,比如:

[main]

...

authc.loginUrl = /whatever.jsp

authc.usernameParam = somethingOtherThanUsername

authc.passwordParam = somethingOtherThanPassword

authc.rememberMeParam = somethingOtherThanRememberMe

...

 

Cookie方式

你可以通过设定{{RememberMeManager}}的各个cookie 属性来配置rememberMe。例如:

[main]

securityManager.rememberMeManager.cookie.name = foo

securityManager.rememberMeManager.cookie.maxAge = blah

...

请参见CookieRememberMeManager SimpleCookie JavaDoc 支持来获取更多的配置属性。

自定义方式

应该注意到,默认基于cookie RememberMeManager 实现如果不符合你的需求,你可以插入任何你喜欢的插件到 securityManager 当中,就像你配置任何其他对象的引用一样:

[main]

...

rememberMeManager = com.my.impl.RememberMeManager

securityManager.rememberMeManager = $rememberMeManager

 

分享到:
评论

相关推荐

    shiro-1.7.1.zip

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

    Apache Shiro中文开发文档.pdf

    - **Remember Me 服务**:为未登录用户启用记住功能,简化后续登录流程。 - **适用范围**:Shiro不仅适用于最简单的命令行应用程序,还适用于大型企业级应用,且无需依赖第三方框架、容器或应用服务器,具有广泛的...

    Apache Shiro教程

    Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密等功能。这个教程将帮助你深入理解和有效地使用Shiro框架。在本文中,我们将详细探讨Shiro的核心概念、主要功能和常见用法...

    shiro-shiro-root-1.5.3.zip

    它支持记住我(Remember Me)服务,允许用户在一段时间内免登录访问应用。 2. **授权(Authorization)**:授权涉及到确定用户是否有权限执行特定操作。Shiro可以基于角色进行授权,用户可以被分配到不同的角色,每...

    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集成...

    JFinal-Shiro-JDBC-Demo-master.zip_DEMO_jfinal_shiro

    1. **用户认证**:Shiro提供了RememberMe服务,可以记住用户的身份,以便在下次访问时自动登录。同时,Shiro还支持密码加密,确保用户密码的安全性。 2. **权限授权**:Shiro的权限控制粒度可以到URL、方法甚至特定...

    shiro与spring整合工程源代码

    - **Authentication(认证)**:Shiro 提供了RememberMe服务,以及通过UsernamePasswordToken等方式进行身份验证。 - **Authorization(授权)**:Shiro可以通过Role和Permission进行细粒度的权限控制,可以做到...

    shiro1.3.2 源码和jar包

    1. **认证**:Shiro提供了RememberMe服务,可以记住用户的登录状态,下次访问时无需再次输入凭证。同时,它支持多种认证模式,如用户名/密码、数字证书等。 2. **授权**:Shiro的权限控制灵活,可以基于角色或权限...

    shiro整合spring+springmvcjar包

    - 使用Shiro的RememberMe服务,为用户提供自动登录功能。 - 使用Shiro的Session管理,避免Web应用中直接处理HttpSession。 - 为不同角色设置不同的权限,实现细粒度的权限控制。 - 对敏感操作进行加密处理,提高...

    SSM整合shiro demo

    SSM整合Shiro是一个常见的Java Web安全框架集成实践,它涉及到Spring、Spring MVC和MyBatis这三大组件与Apache Shiro的深度融合。Shiro提供了一套简洁且强大的身份验证、授权、会话管理和安全功能,使得开发者能够...

    Apache Shiro 1.2.x 参考手册1

    Shiro 提供了多种认证机制,包括记住我(Remember Me)功能和多因素认证。开发者可以通过 Realm 实现与后端数据源的交互,验证用户名和密码。 6. **Authorization** (授权) 授权是确定用户是否有权限执行某个操作...

    SSM整合Shiro.zip

    SSM整合Shiro项目是一个基于IntelliJ IDEA的Java Web应用程序,它集成了Spring、Spring MVC和MyBatis三大框架,并引入了Apache Shiro作为安全组件,用于实现用户的身份验证、授权、会话管理和缓存功能。这个项目旨在...

    shiro-单用户登录.zip

    Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。在"shiro-单用户登录.zip"这个压缩包中,我们很显然是关注Shiro如何实现单用户的登录...

    springboot-08-shiro.zip

    4. 安全控制:除了基本的身份认证和授权,Shiro还支持密码加密、RememberMe功能、CSRF防护等,增强应用安全性。 总结,SpringBoot与Shiro的整合,为开发者提供了便捷的权限管理和安全控制手段。通过理解Shiro的核心...

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

    【SpringBoot】与Apache Shiro整合进行权限管理是构建安全Web应用的一种常见方式。Shiro是一个轻量级、易用的Java安全框架,提供身份验证、授权、密码管理和会话管理功能。它通过简单的API使得开发者能快速为各种...

    spring boot shiro demo项目

    Spring Boot Shiro Demo项目是一个基于Spring Boot框架与Apache Shiro实现的权限管理示例,旨在帮助开发者快速理解和应用Shiro...同时,也可以进一步探索Shiro的高级特性,如角色、权限的动态分配、Remember Me功能等。

    shiro学习笔记

    Apache Shiro 是一个强大且易用...- 自定义RememberMe服务 - 示例代码及异常处理 通过深入学习这份笔记,你可以掌握Shiro的基本用法,理解其内部机制,并能够应用于实际项目中,提供高效且安全的身份验证和授权功能。

    Java SSM整合shiro demo

    - **记住密码功能**:Shiro的RememberMe服务可以帮助用户在下次访问时自动登录,通过设置RememberMeManager并在登录成功后保存用户信息到Cookie。 在"Java SSM整合shiro demo.pdf"文档中,你将找到详细的步骤、代码...

    Spring Boot 整合 Shiro.docx

    最后,可能还需要配置Remember Me服务和单点登录(SSO)功能。 总的来说,Spring Boot整合Shiro可以帮助开发者快速构建安全的应用程序,通过简单的配置和API调用来实现复杂的权限控制,同时保持系统的灵活性和可...

Global site tag (gtag.js) - Google Analytics