shiro 将session存在本地文件里
时间: 2024-10-07 15:01:18 浏览: 33
shiro redis session共享
Shiro是一个开源的身份安全框架,主要用于Web应用的安全管理,它支持多种会话存储机制,其中包括存储在本地文件系统中。当启用基于文件的会话存储时,Shiro会在服务器启动时创建一个或多个临时目录,用于存放用户的Session数据。
配置步骤如下:
1. **添加依赖**:在你的Maven项目中,需要添加Apache Shiro相关依赖,例如Spring Security集成的shiro-spring。
```xml
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.7.4</version>
</dependency>
```
2. **配置SessionFactory**:在Spring配置文件中,设置`InMemorySessionDAO`为默认的会话工厂,然后指定会话保存的目录:
```xml
<bean id="sessionFactory" class="org.apache.shiro.session.mgt.eis.FileSessionDAO">
<property name="sessionIdGenerator" ref="sessionIdGenerator"/>
<property name="sessionValidationSchedulerEnabled" value="true"/>
<property name="sessionTimeout" value="30m"/>
<property name="sessionSaveMode" value="ON_ACCESS"/>
<!-- 设置会话文件保存的路径 -->
<property name="baseDirectory" value="${java.io.tmpdir}/shiro_sessions"/>
</bean>
```
这里`${java.io.tmpdir}`通常表示系统的临时目录,如Windows下的%temp%。
3. **启用会话管理**:确保在Shiro的过滤链配置中包含了会话管理过滤器。
```xml
<filter-chain-manager>
<filters>
<filter name="authc" filter-class="org.apache.shiro.web.filter.authc.AuthenticationFilter"/>
<!-- 添加会话管理过滤器 -->
<filter name="sessionManagement" filter-class="org.apache.shiro.web.filter.mgt.SessionManagementFilter"/>
<!-- 其他过滤器... -->
</filters>
</filter-chain-manager>
```
阅读全文