gpt4 book ai didi

java - 使用 Spring-Boot 和 OAuth2 实现 JdbcTokenStore

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:39 25 4
gpt4 key购买 nike

嘿,

我正在尝试使用 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);
}

这样做我收到以下错误:

Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [se.....config.OAuth2ServerConfig$OAuth2Config$$EnhancerBySpringCGLIB$$f6b9ba94]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: DataSource required

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

任何人都可以告诉我我做错了什么或推荐有关此问题的好例子的来源吗?

非常感谢!

最佳答案

这是一个基本的依赖注入(inject)问题(没什么花哨的,也没有与 oauth 或 Boot 相关的)。您无法从 @Autowired 初始化字段(连接在初始化后进行)。您需要将其提取到 @PostConstruct@Bean 中。

关于java - 使用 Spring-Boot 和 OAuth2 实现 JdbcTokenStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769467/

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