gpt4 book ai didi

Spring OAuth2 需要 PlatformTransactionManager

转载 作者:行者123 更新时间:2023-12-02 14:23:17 26 4
gpt4 key购买 nike

我正在致力于将 Spring Security OAuth2 与 JWT token 集成到 Spring Boot 项目中。我的身份验证服务器的配置类似于 sample project 中的配置。 .

当 OAuth2 客户端在 /oauth/token 上执行 POST 时,它无法创建访问 token 。记录的具体错误是:


o.s.s.o.provider.endpoint.TokenEndpoint :处理错误:NoSuchBeanDefinitionException,未定义类型 [org.springframework.transaction.PlatformTransactionManager] 的合格 bean

我已在调用 tokenServices.createAccessToken 时将其调试到 AbstractTokenGranter 第 70 行。我无法轻松地进一步调试,因为此调用实际上是通过代理进行的。似乎配置中的某些内容想要使此事务性化。在 JWT 中创建访问 token 不应该是事务性的。我可以理解为什么检索访问代码将是事务性的,但代码成功地超越了这一点。

为什么这可能需要 PlatformTransactionManager 以及如何提供一个?

最佳答案

问题是您在应用程序中使用 new InMemoryTokenStore() 配置了内存数据库的使用,但您的 spring-boot 应用程序不包含内存数据库。

解决方案:在 spring-boot pom 或 gradle 依赖项中添加内存数据库。

H2 和 Maven pom 示例:

<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.187</version>
</dependency>

关于Spring OAuth2 需要 PlatformTransactionManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31171418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com