我正在跟随这个链接上的 Spring Security 教程的第三部分。我需要使用 Redis 将会话信息传递给资源后端。
以下是我的 applicaiton.yml 文件:
server:
port: 9000
security:
sessions: NEVER
spring:
session:
store-type: redis
redis:
host: localhost
port: 6379
logging:
level:
org.springframework:
security: DEBUG
session: TRACE
另外,我使用HeaderHttpSessionStrategy bean作为会话策略
@Bean
HeaderHttpSessionStrategy sessionStrategy() {
return new HeaderHttpSessionStrategy();
}
我的pom文件找不到相关的类声明,导致出错
包org.springframework.session.web.http不存在
上述错误出现在我的pom.xml文件中。
<properties>
<java.version>14</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
我是spring和spring-security领域的新手。有没有任何建议可以解决这个问题?
编辑:
在我的pom中添加了新的依赖项后。
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>
我解决了上述问题,但现在出现了一个新问题,它说:
无法自动配置会话存储库,请检查您的配置(会话存储类型为'redis'
我的 application.yml 中的 redis 配置如上所示。我正在使用在 Docker 上的 Redis。我的 Docker yml 如下:
redis:
image: redis
ports:
- "6379:6379"