当前位置: 首页 > 知识库问答 >
问题:

使用Spring Boot和OAuth2实现JdbcTokenStore

纪勇军
2023-03-14

嘿,

我正在尝试使用Spring-Boot在应用程序中实现OAuth2。我正在努力实现JdbcTokenStore(我理解得对吗,这是为了将Token存储在数据库中?)

我的代码如下所示:

@Configuration
@EnableAuthorizationServer
protected static class OAuth2Config extends AuthorizationServerConfigurerAdapter {

    @Autowired
    private DataSource dataSource;

    private TokenStore tokenStore = new JdbcTokenStore(dataSource);

....

    @Override
    public void configure(OAuth2AuthorizationServerConfigurer oauthServer) throws Exception {
         oauthServer.tokenStore(tokenStore).authenticationManager(authenticationManager);
    }

这样做时,我会出现以下错误:

原因:org.springframework.beans.BeanInstantiationException:无法实例化bean类[se...... config. OAuth2ServerConfig$OAuth2Config$$EnhancerBySpringCGLIB$$f6b9ba94]:构造函数抛出异常;嵌套异常java.lang.IllegalArgumentException:需要DataSource

数据库连接本身似乎可以工作,至少当我使用InMemoryTokenStore时,我可以使用存储在数据库中的用户数据(用户名/密码)登录。

有谁能告诉我我做错了什么,或者推荐一些关于这个问题的好例子?

谢谢!

共有1个答案

华乐逸
2023-03-14

这是一个基本的依赖注入问题(没有什么花哨的,也没有什么与外部或引导相关的)。您不能从@Autowire初始化字段(连接发生在初始化之后)。您需要将其拉出到@PostConstruct@Bean中。

 类似资料:
  • 我试图找出实现一个支持AccountManager.getAuthToken()的OAuth2流的改型客户机的最佳方法。我跟着U2020 理想情况下,我希望有一个简单的注射器沿着这些线

  • 我使用的是spring boot 1.2.8,但类不存在。没有这门课最好的方法是什么?

  • 我正在使用Spring Boot开发一个微服务架构。我们已经在Auth服务器中实现了OAuth2。 我的问题是--如果两个微服务想要通信,最好的方式应该是什么? 请建议我应该选择哪个选项,如果有更好的选择,请让我知道。 提前谢了。

  • 我有一个带有OAuth2安全性的Spring Boot REST API。 今天,我已经将我的版本从升级到。 变化完全把我搞糊涂了。 然而,我的问题是: 就安全性而言,这两个版本之间发生了什么? 这条“奇怪”的行是唯一有效的修复程序吗? 这个登录页面的目的是什么,它使用的身份验证是什么(我在Google Chrome中检查了一个请求和响应,但我看不到任何访问令牌和oauth2的东西,所以它只使用用

  • 本文向大家介绍SpringBoot使用Redis缓存的实现方法,包括了SpringBoot使用Redis缓存的实现方法的使用技巧和注意事项,需要的朋友参考一下 (1)pom.xml引入jar包,如下:   (2)修改项目启动类,增加注解@EnableCaching,开启缓存功能,如下:   (3)application.properties中配置Redis连接信息,如下:   (4)新建Redis

  • 我花了2天的时间阅读了SpringBoot OAuth2客户端的各种教程。每个人看起来都略有不同。此外,由于在给定的包中找不到几个类,因此它们都不起作用。 https://www.baeldung.com/spring-webclient-oauth2 https://www.baeldung.com/spring-security-5-oauth2-login#setup https://spr