java - 不能自动配置会话存储库(会话存储类型为“redis”)
问题描述
我正在关注该教程第三部分的此链接中的弹簧安全教程。我必须使用 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>
我是春季和春季安全世界的新手。有什么建议可以解决这个问题吗?
编辑:
在我在 pom 中添加新的依赖项之后
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>
我解决了上述问题,但这次给我带来了新问题:
无法自动配置会话存储库,请检查您的配置(会话存储类型为“redis”
我在 application.yml 上的 redis 配置在上面。我在docker上使用redis。我的码头工人 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>
也许这会帮助别人。
推荐阅读
- c# - 当 SelectedItem 绑定到模型源并且 ItemsSource 绑定到模型选项时,SelectedIndex 不起作用
- tailwind-css - 为什么顺风css没有效果?
- swiftui - 是否可以使用 SwiftUI 中的 NavigationView 替换 iPad 导航栏中的默认后退按钮和侧边栏图标?
- python - 打开 cv 不会视频捕获 IP 摄像机
- javascript - 对对象使用 getter/setter 有什么意义吗?
- node.js - 在移动下一步之前等待 api 响应 - nodejs
- postgresql - 带有 where 子句“COLUMN_1 为空”的 PostgreSQL 选择查询挂起
- scala - Statistics.corr 在 IntelliJ IDEA 中给出以下错误:无法解析重载方法“corr”
- json - 在空手道中,我试图从 API Json 响应中找到一个密钥,密钥看起来像“payment:canel”但出现错误
- python - 如何将pygame窗口固定在顶部?