[英]Spring okta oauth2 properties using spring cloud vault
我們在Spring啟動項目中使用okta進行身份驗證。 我們已經成功使用Java應用程序完成了身份驗證(請參閱-https: //developer.okta.com/blog/2017/03/21/spring-boot-oauth )
現在,我正在嘗試將okta clientId和secret屬性移至Vault。
保管庫引導程序
spring.cloud.vault:
主機:localhost
端口:8200
方案:http
令牌:00000000-0000-0000-0000-000000000000
現在請看以下兩種情況下的應用程序屬性
情況1:使用@Value的屬性有效
am.clientId = $ {account.clientId} am.issuer = $ {account.issuer}
用作
@Value("${am.clientId}") private String clientId;
@Value("${am.issuer}")
private String clientSecret;
情況2:用作spring屬性不起作用我對spring oAuth使用相同的屬性,但失敗
okta.oauth2.clientId = $ {} account.clientId
okta.oauth2.issuer = $ {} account.issuer
異常記錄
java.lang.IllegalArgumentException:無法解析值“ $ {account.clientId}”中的占位符“ account.clientId”。 在org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:172)〜[spring-core-5.0.5.RELEASE.jar!/:5.0.5.RELEASE] account-web_1 | 在org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124)〜[spring-core-5.0.5.RELEASE.jar!/:5.0.5.RELEASE] account-web_1 | 在org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:237)〜[spring-core-5.0.5.RELEASE.jar!/:5.0.5.RELEASE] account-web_1 | 在org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:211)〜[spring-core-5.0.5.RELEASE.jar!/:5.0.5.RELEASE]
[更新]
因此,調試spring代碼后,我意識到問題僅在於屬性
okta.oauth2.issuer
Github對此有一個問題 ,但是okta spring boot satarter 0.6.0版本仍然有問題。
您是否嘗試過在雲配置提供程序中設置okta.oauth2.*
屬性? 我通常使用文件存儲庫測試Cloud Config,但是從客戶端的角度來看,它應該是相同的。 (我知道這並不能完全回答您的問題,而只是想確保在繼續操作之前可以奏效)
因此,我對此有一種解決方案。 創建了一個bean“ oktaOAuth2Properties”以覆蓋Spring Boot默認bean,並使用@Value批注從Vault中獲取值。 代碼如下所示。 這對我有用
@Value(“ $ {okta.clientId}”)私有字符串clientId;
@Value("${okta.issuer}")
private String issuer;
@Bean
public OktaOAuth2Properties oktaOAuth2Properties() {
OktaOAuth2Properties properties = new OktaOAuth2Properties();
properties.setClientId(clientId);
properties.setIssuer(issuer);
return properties;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.