无法自动配置会话存储库(会话存储类型为“redis”)。

3

我正在跟随这个链接上的 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"

你尝试过什么来查找包含该包的Maven构件? - tgdavies
你好,我尝试添加以下依赖项: <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session</artifactId> <version>1.3.5.RELEASE</version> </dependency> 添加了这个依赖项之后,我可以添加相关的类,但是这次从redis中出现了配置错误。 - Mertalp Tasdelen
如果您无法解决Redis问题,请提出一个问题。听起来好像您已经解决了这个问题。 - tgdavies
1个回答

6

我最近遇到了这个错误。 我在使用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>

也许这能帮助其他人。

你好,Daniel。目前我还没有继续这个项目,但是等我开始后我会试一下并回复你的。谢谢你的答复。 - Mertalp Tasdelen
好的,问题已经解决了。 - Michael Böckling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接