gpt4 book ai didi

java - 如何从属性文件加载 ClientCredentialsResourceDetails 所需参数

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:22 24 4
gpt4 key购买 nike

我正在尝试从属性文件中加载所需的参数,例如 accessURI、client_id、client_secret,如下所示。它从不加载属性,我看到很多网站都提到了这一点作为例子。如果我尝试明确设置它,它就会起作用。

在此示例中 https://dzone.com/articles/build-a-spring-boot-app-with-secure-server-to-serv

@Bean()
@ConfigurationProperties(prefix ="my.oauth2.client")
protected ClientCredentialsResourceDetails oAuthDetails() {
return ClientCredentialsResourceDetails();

但它从未加载属性,所以我需要更改为使用设置方法。我无法弄清楚为什么它没有加载,我相信我不能在 @EnableConfigurationProperties 中提及这一点,因为它没有配置配置。

我尝试搜索,但找不到匹配的原因。

最佳答案

基本上,属性与类成员的绑定(bind)按示例中所述进行。

属性必须以 YAML 或属性文件的形式出现:

spring:
security:
oauth2:
client:
registration:
oauth:
client-id: XXXXXX
client-secret: YYYYYYY
scope: openid
redirect-uri: http://redirect
access-token-uri: https://token
client-authentication-method: basic
authorization-grant-type: client_credentials

然后必须使用正确的前缀声明 @ConfigurationProperties 注释。在此示例中,它是“spring.security.oauth2.client.registration.oauth”。

@Bean
@ConfigurationProperties(prefix ="spring.security.oauth2.client.registration.oauth")
protected ClientCredentialsResourceDetails oAuthDetails() {
return new ClientCredentialsResourceDetails();
}

Spring Boot documentation 中所述您通常不必设置 @EnableConfigurationProperties 注释,除非您正在开发自己的自动配置。

但是,如果您正在开发非 Spring Boot 项目,则必须声明 @EnableConfigurationProperties 注解,描述我们要在其中使用 @ConfigurationProperties 注解的类:

@Configuration()
@EnableConfigurationProperties(MyProperties.class)
public class MyConfig {

}

@ConfigurationProperties(prefix="myproperties")
public class MyProperties {

}

或者,您还可以使用配置属性扫描,其工作方式与组件扫描类似,只需声明 @ConfigurationPropertiesScan 注释即可:

@SpringBootApplication
@ConfigurationPropertiesScan({ "my.app" })
public class MyApplication {
}

希望这会有所帮助。佩罗

关于java - 如何从属性文件加载 ClientCredentialsResourceDetails 所需参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56813380/

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