如何强制Spring Boot OAuth2自动配置使用另一个yml文件而不是application.yml文件?

时间:2018-12-17 15:47:42

标签: spring-boot oauth-2.0

我开发了一个使用OAuth2自动配置的Spring Boot应用程序,但是我不能强迫它从除application.yml之外的yml文件中读取客户端配置

预先感谢

1 个答案:

答案 0 :(得分:0)

一种简单的解决方案是使用多个配置文件和一个配置文件一个客户端文件:

第一个属性文件名为 application-my-client-1.yml

spring:
  security:
    oauth2:
      client:
        registration:
          my-client-1:
            client-id: ${APP-CLIENT-ID}
            client-secret: ${APP-CLIENT-SECRET}
            client-name: my-client user
            provider: my-client
            scope: user
            redirect-uri: http://localhost:8080/login/oauth2/code/my-client

通过在运行spring boot应用程序时将my-client-1配置文件设置为启用来激活:

java -jar -Dspring.profiles.active=my-client-1 myApplication.jar

第二个属性文件名为 application-my-client-2.yml

spring:
  security:
    oauth2:
      client:
        registration:
          my-client-2:
            client-id: ${APP-CLIENT-ID}
            client-secret: ${APP-CLIENT-SECRET}
            client-name: my-client-2 email
            provider: my-client-2
            scope: user:email
            redirect-uri: http://localhost:8080/login/oauth2/code/my-client-2

通过在运行Spring Boot应用程序时将my-client-2配置文件设置为启用来激活:

java -jar -Dspring.profiles.active=my-client-2 myApplication.jar

可以通过在以下位置设置所有配置文件来激活所有属性:

java -jar -Dspring.profiles.active=my-client-1,my-client-2 myApplication.jar