【问题标题】:Dynamically change security.oauth2.resource.user-info-uri in Spring OAuth2 @EnableResourceServer在 Spring OAuth2 @EnableResourceServer 中动态更改 security.oauth2.resource.user-info-uri
【发布时间】:2017-07-20 22:17:47
【问题描述】:

我有一个Spring Boot 应用程序如下:

@SpringBootApplication
@EnableResourceServer
@EnableDiscoveryClient
public class App
{
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

我已经在application.properties 中配置了 oauth2 属性。

security.oauth2.resource.user-info-uri=http://localhost:9000/user

但是,我需要根据我发送到我的Spring Boot 应用程序的请求来更改这个URI

例如: 如果我收到对我的 Spring Boot App 到 URL htpp://test.localhost:8000 的请求,我希望 user-info-urlhttp://test.localhost:9000/user

但如果我收到对http://localhost:8000 的请求,我希望user-info-urlhttp://localhost:9000/user

我的目的是根据子域管理不同的环境。

有没有办法在代码中动态更改此URI,而不是将其硬编码为属性?

【问题讨论】:

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


    【解决方案1】:

    Spring Cloud Config

    通过利用 Spring Cloud Config 服务器,您可以将配置外部化并将更新推送到应用程序属性。一个简单的实现由 Git 存储库提供支持,您将在其中存储 application.properties 文件。您提交更改,然后发出 POST 请求 /refresh 端点,这将触发重新加载您的配置。

    还有更高级的场景,但希望这足以让您入门。

    这是一个简单的Getting Started 指南。

    【讨论】:

    • 但我需要一个不同的值'每个请求'。如果我实施了您的建议,我将为我的 Spring Boot 应用程序的每个请求提交更改。
    • 你是对的,我在你的问题中忽略了这个细节。您能否就不同的请求以及该架构背后的整体逻辑提供一些清晰的说明?谢谢!
    • 我在问题中添加了该说明。谢谢!
    猜你喜欢
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2019-06-11
    • 2017-11-15
    • 2019-03-09
    • 2017-08-13
    相关资源
    最近更新 更多