如何在Spring Boot中创建JDBC TokenStore?

时间:2018-07-31 17:53:58

标签: java spring spring-boot spring-security-oauth2

我尝试按照此答案将JDBC TokenStore添加到我的应用程序。

https://stackoverflow.com/a/37595818/148844

它正在与InMemoryTokenStore一起使用。我需要知道将代码放在哪里

@Bean(name = "OAuth")
@ConfigurationProperties(prefix="datasource.oauth")
public DataSource secondaryDataSource() {
    return DataSourceBuilder.create().build();
}

我试图将其放入

@Configuration
@EnableAuthorizationServer
public class OAuth2Configuration extends AuthorizationServerConfigurerAdapter {

但是我得到了错误

  

由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建名称为'OAuth2Configuration'的bean时出错:注入资源依赖项失败;嵌套的异常是org.springframework.beans.factory.BeanCurrentlyInCreationException:创建名称为'OAuth'的bean时出错:当前正在创建所请求的bean:是否存在不可解析的循环引用?

所以我将其移至主要课程

@SpringBootApplication
@MapperScan("com.example.mapper")
public class ExampleApplication extends SpringBootServletInitializer {

但是随后却给出了另一个错误

  

由以下原因引起:org.springframework.jdbc.CannotGetJdbcConnectionException:无法获取JDBC连接。嵌套的异常为java.sql.SQLException:网址不能为空

那我应该在哪个代码段中定义bean?

1 个答案:

答案 0 :(得分:1)

您需要在application-{profile}.properties中拥有数据库配置属性,尤其是它们必须以datasource.oauth为前缀。 profile将是您的应用程序所运行的任何配置文件(例如dev,stage,prod)。

清楚显示的错误表明特定属性文件中没有datasource.oauth.url=..属性。