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会寻找请求参数名为username,password和rememberMe的值。如果你的参数名与这些默认值不同,你可以在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的RememberMe服务、Session管理以及CSRF防护等功能都在这个模块中实现。 3. **shiro-lang-1.7.1.jar**: 该组件包含了Shiro的表达式语言支持,如在角色和权限定义时使用SpEL(Spring Expression Language...
- **Remember Me 服务**:为未登录用户启用记住功能,简化后续登录流程。 - **适用范围**:Shiro不仅适用于最简单的命令行应用程序,还适用于大型企业级应用,且无需依赖第三方框架、容器或应用服务器,具有广泛的...
Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密等功能。这个教程将帮助你深入理解和有效地使用Shiro框架。在本文中,我们将详细探讨Shiro的核心概念、主要功能和常见用法...
它支持记住我(Remember Me)服务,允许用户在一段时间内免登录访问应用。 2. **授权(Authorization)**:授权涉及到确定用户是否有权限执行特定操作。Shiro可以基于角色进行授权,用户可以被分配到不同的角色,每...
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集成...
1. **用户认证**:Shiro提供了RememberMe服务,可以记住用户的身份,以便在下次访问时自动登录。同时,Shiro还支持密码加密,确保用户密码的安全性。 2. **权限授权**:Shiro的权限控制粒度可以到URL、方法甚至特定...
- **Authentication(认证)**:Shiro 提供了RememberMe服务,以及通过UsernamePasswordToken等方式进行身份验证。 - **Authorization(授权)**:Shiro可以通过Role和Permission进行细粒度的权限控制,可以做到...
1. **认证**:Shiro提供了RememberMe服务,可以记住用户的登录状态,下次访问时无需再次输入凭证。同时,它支持多种认证模式,如用户名/密码、数字证书等。 2. **授权**:Shiro的权限控制灵活,可以基于角色或权限...
- 使用Shiro的RememberMe服务,为用户提供自动登录功能。 - 使用Shiro的Session管理,避免Web应用中直接处理HttpSession。 - 为不同角色设置不同的权限,实现细粒度的权限控制。 - 对敏感操作进行加密处理,提高...
SSM整合Shiro是一个常见的Java Web安全框架集成实践,它涉及到Spring、Spring MVC和MyBatis这三大组件与Apache Shiro的深度融合。Shiro提供了一套简洁且强大的身份验证、授权、会话管理和安全功能,使得开发者能够...
Shiro 提供了多种认证机制,包括记住我(Remember Me)功能和多因素认证。开发者可以通过 Realm 实现与后端数据源的交互,验证用户名和密码。 6. **Authorization** (授权) 授权是确定用户是否有权限执行某个操作...
SSM整合Shiro项目是一个基于IntelliJ IDEA的Java Web应用程序,它集成了Spring、Spring MVC和MyBatis三大框架,并引入了Apache Shiro作为安全组件,用于实现用户的身份验证、授权、会话管理和缓存功能。这个项目旨在...
Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。在"shiro-单用户登录.zip"这个压缩包中,我们很显然是关注Shiro如何实现单用户的登录...
4. 安全控制:除了基本的身份认证和授权,Shiro还支持密码加密、RememberMe功能、CSRF防护等,增强应用安全性。 总结,SpringBoot与Shiro的整合,为开发者提供了便捷的权限管理和安全控制手段。通过理解Shiro的核心...
【SpringBoot】与Apache Shiro整合进行权限管理是构建安全Web应用的一种常见方式。Shiro是一个轻量级、易用的Java安全框架,提供身份验证、授权、密码管理和会话管理功能。它通过简单的API使得开发者能快速为各种...
Spring Boot Shiro Demo项目是一个基于Spring Boot框架与Apache Shiro实现的权限管理示例,旨在帮助开发者快速理解和应用Shiro...同时,也可以进一步探索Shiro的高级特性,如角色、权限的动态分配、Remember Me功能等。
Apache Shiro 是一个强大且易用...- 自定义RememberMe服务 - 示例代码及异常处理 通过深入学习这份笔记,你可以掌握Shiro的基本用法,理解其内部机制,并能够应用于实际项目中,提供高效且安全的身份验证和授权功能。
- **记住密码功能**:Shiro的RememberMe服务可以帮助用户在下次访问时自动登录,通过设置RememberMeManager并在登录成功后保存用户信息到Cookie。 在"Java SSM整合shiro demo.pdf"文档中,你将找到详细的步骤、代码...
最后,可能还需要配置Remember Me服务和单点登录(SSO)功能。 总的来说,Spring Boot整合Shiro可以帮助开发者快速构建安全的应用程序,通过简单的配置和API调用来实现复杂的权限控制,同时保持系统的灵活性和可...