`

shiro session管理

阅读更多

SessionManager是在应用程序中为所有Subject提供Session的管理,包括创建,删除,失效及验证等。同其的核心组件一样,SessionManager 也是一个由SecurityManager 维护的顶级组件

 

Shiro中默认提供了一个SessionManager的实现DefaultSessionManagerDefaultSessionManager 提供一个应用程序所需的所有企业级会话管理。可以在任何应用程序中使用

 

org.apache.shiro.web.mgt.DefaultWebSecurityManager 的默认SessionManager为ServletContainerSessionManager,如果使用ServletContainerSessionManager进行会话管理,Session的超时依赖于底层Servlet容器的超时时间,可以在web.xml中配置其会话的超时时间(分钟为单位)。

 

<!-- 企业sessiondao-->
<bean id ="sessionDao" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO"></bean>
   
    <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
	   <property name="cacheManagerConfigFile" value="classpath:ehcache-shiro.xml" />
	</bean>
	 <bean id="shiroDbRealm" class="com.wanwei.irdm4k.common.shiro.ShiroDbRealm" >
     <property name="cacheManager" ref="cacheManager"/>
    </bean>

	<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
        <property name="sessionDAO" ref="sessionDao"/> 
         <property name="globalSessionTimeout" value="7200000"/> 
    </bean> 
   
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
		<property name="realm" ref="shiroDbRealm" />
		<property name="cacheManager" ref="cacheManager"/>
		
		<property name="sessionManager" ref="sessionManager" />
	</bean>

 

Session Listeners

Shiro 支持SessionListener 概念来允许你对发生的重要会话作出反应。你可以实现SessionListener 接口(或扩展易用的SessionListenerAdapter)来与相应的会话操作作出反应。

由于默认的SessionManager sessionListeners 属性是一个集合,你可以对SessionManager 配置一个或多个listener 实现

 

Shiro提供了三个默认实现:

DefaultSessionManager:DefaultSecurityManager使用的默认实现,用于JavaSE环境;

ServletContainerSessionManager:DefaultWebSecurityManager使用的默认实现,用于Web环境,其直接使用Servlet容器的会话;

 

DefaultWebSessionManager:用于Web环境的实现,可以替代ServletContainerSessionManager,自己维护着会话,直接废弃了Servlet容器的会话管理。

 

另外如果使用ServletContainerSessionManager进行会话管理,Session的超时依赖于底层Servlet容器的超时时间,可以在web.xml中配置其会话的超时时间(分钟为单位): 

 

Java代码 复制代码 收藏代码
  1. <session-config>   
  2.   <session-timeout>30</session-timeout>   
  3. </session-config>  
分享到:
评论

相关推荐

    springboot +shiro+redis实现session共享(方案二)1

    * 简化了登录 session 的管理 8. 结论 本文档介绍了如何使用 Spring Boot、Shiro 和 Redis 实现分布式 session 共享,以解决 Web 应用程序的登录 session 统一问题。通过使用 Redis 作为 Session 存储和 Shiro ...

    SSM项目集成shiro搭建session共享

    在这个项目中,Shiro主要用于用户登录、权限控制以及session管理。通过Shiro,我们可以方便地实现单点登录(SSO)和session的集群共享。 5. **Log4j2**:Log4j2是Apache的一个日志组件,它提供了灵活的日志记录方式...

    shiro的session中的会话管理

    在分布式系统或微服务架构中,会话管理成为一个关键问题,因为默认情况下,Shiro的session管理是基于单个服务器的,无法在多台服务器之间共享用户会话信息。 在传统的Web应用中,session信息通常存储在服务器的内存...

    shiro+redis做session管理

    这时,我们可以利用开源的安全框架Apache Shiro和缓存系统Redis来实现高效的Session管理。本文将详细介绍如何利用Shiro与Redis结合进行Session管理。 Apache Shiro是一个强大且易用的Java安全框架,提供认证、授权...

    shiro redis session共享

    标题“shiro redis session共享”涉及的是Web应用中关于用户会话管理的技术,主要集中在Apache Shiro框架和Redis缓存系统上。Apache Shiro是一款强大的Java安全框架,它提供了身份验证、授权、加密和会话管理功能。...

    shiro-redisson基于Redis的ShiroCache和Session实现

    `shiro-redisson` 模块就是为了解决这个问题,将 Shiro 的缓存(Cache)和会话(Session)管理功能与 Redis 结合,实现了基于 Redis 的分布式解决方案。 1. **Redisson 库的介绍** Redisson 是一个全面的 Redis ...

    shiro+redis session共享实现

    首先,Shiro框架的Session管理是基于内存的,这意味着默认情况下,每个Web服务器都会独立维护其自身的session数据。但在分布式环境中,用户可能会在多个服务器之间跳转,这就需要一个统一的session存储机制,以便...

    SpringBoot+vue +shiro +redis

    - Redis的使用可以提高Shiro Session管理的效率,同时也可以作为缓存,存储部分数据以减少数据库查询。 在“第三组点餐系统”项目中,这些技术的结合可能涉及到以下几个方面: - 用户登录注册,Shiro进行身份验证...

    ssm-shiro权限管理(二)

    此外,还可以配置Shiro的Session管理,例如设置超时策略,以及如何在分布式环境中处理Session共享问题。 缓存管理是提高系统性能的关键。Shiro支持缓存用户权限信息,避免频繁查询数据库。我们可以利用Shiro的...

    nginx+tomcat shiro实现多tomcat下session共享

    在多Tomcat环境下的session共享中,Shiro可以作为会话管理的工具,它支持自定义的session管理策略。 4. **共享Session的解决方案**: 为了实现session共享,我们可以利用Redis这样的内存数据存储系统。Redis具有...

    shiro权限管理案例加文档

    Shiro的核心组件包括:Subject(主体)、Realms(域)、Cryptography(加密)和Session Management(会话管理)。Subject是Shiro中的核心概念,它代表了当前用户的安全上下文。Realms则负责与数据源交互,获取认证和...

    SSM+Shiro权限管理Demo

    同时,Shiro的Session管理功能可以跟踪用户的在线状态,并且可以实现单点登录(SSO)等功能。 在开发过程中,开发者需要编写Service和DAO层的代码来处理数据库操作,使用Shiro的API进行权限校验,然后在Controller...

    shiro权限管理(一)

    Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密服务。在"Shiro权限管理(一)"这篇博文中,我们可能会探讨Shiro的基础概念和如何在项目中实现基本的权限控制。让我们深入...

    管理系统系列--SpringBoot+Shiro权限管理系统脚手架.zip

    Shiro提供了一套完整的安全控制体系,包括用户认证(验证用户身份)、授权(控制用户访问权限)、会话管理(如session共享)和密码加密。在SpringBoot+Shiro的系统中,Shiro主要负责用户的登录验证、角色与权限的...

    spring boot整合redis实现shiro的分布式session共享的方法

    Shiro 通过 SessionManager 来管理 Session,而 Session 的操作则是通过 SessionDao 来实现的。默认情况下,Shiro 实现了两种 SessionDao,分别为 CachingSessionDAO 和 MemorySessionDAO。当我们使用 EhCache 缓存...

    shiro管理多登录入口配置,手机端登录与网页端登录

    Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常方便地开发出足够安全的应用。在"shiro管理多登录入口配置,手机端登录与网页端登录"这个场景下,我们需要考虑如何为...

    shiro权限管理实例

    然后,会话管理(Session Management)是Shiro的重要组成部分。Shiro允许我们在不依赖Servlet容器的情况下进行会话管理,这在单页应用或者无服务器架构中尤其有用。在这个实例中,Shiro可以负责创建、更新、读取和...

    Shiro权限管理 的jar包 ,一些example ,shiro资料笔记与核心单词

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)和加密(Cryptography)等核心功能。在本文中,我们将深入探讨Shiro权限管理的...

    shiro权限管理系统示例

    - **配置Shiro**: 创建`ShiroConfig`类,设置安全配置,如 Realm(认证和授权的来源)、缓存管理、session管理等。 - **定义 Realm**: 实现`AuthorizingRealm`接口,处理用户凭证的验证和权限的获取,通常与数据库...

    springboot shiro 权限管理项目

    此外,Shiro还提供了Session管理功能,可以方便地实现跨域会话共享,或者设置会话超时、会话监听等。在Spring Boot中,我们可以通过Shiro的SessionDAO和SessionManager来定制session的存储方式和生命周期。 总结来...

Global site tag (gtag.js) - Google Analytics