我正在关注此 link 中的 spring 安全教程在该教程的第三部分。我必须使用 redis 将 session 信息传递给资源后端。
这是我的 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 作为 session 策略
@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>
我解决了上面的问题,但这次给我打了一个新的,它说:
无法自动配置 session 存储库,请检查您的配置( session 存储类型为“redis”
我的redis在application.yml上的配置如上。我在 docker 上使用 redis。我的 docker yml 是:
redis:
image: redis
ports:
- "6379:6379"
最佳答案
我最近遇到了这个错误。我使用的是 Spring Boot 2.4.0。我已经添加了 Spring Session 的依赖项,但忘记为 Jedis 添加一个。
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
当我第一次部署时,它给了我消息:
No session repository could be auto-configured, check your configuration (session store type is 'redis')
在我添加此依赖项并重建我的 JAR 后,一切正常。
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
也许这会对其他人有所帮助。
关于java - 无法自动配置 session 存储库( session 存储类型为 'redis' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63436508/