繁体   English   中英

使用Spring-Boot和OAuth2的JdbcTokenStore实现

[英]JdbcTokenStore implementation with Spring-Boot and OAuth2

HEJ,

我正在尝试使用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:需要数据源

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

谁能告诉我我做错了什么,或推荐一些来源来解决此问题?

非常感谢!

那是一个基本的依赖注入问题(没有花哨的东西,也没有与oauth或Boot相关的东西)。 您无法通过@Autowired初始化字段(在初始化后进行接线)。 您需要将其拉到@PostConstruct@Bean

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM