Мы используем okta для аутентификации в нашем загрузочном проекте Spring.Мы успешно выполнили аутентификацию с использованием Java-приложения как (см. https://developer.okta.com/blog/2017/03/21/spring-boot-oauth)
. Теперь я пытаюсь переместить okta clientId и секретное свойство в хранилище.
Bootstrap для хранилища
spring.cloud.vault:
хост: localhost
порт: 8200
схема: http
токен: 00000000-0000-0000-0000-000000000000
Теперь, пожалуйста, посмотрите на 2 приведенных ниже случая для свойств приложения
Случай 1: свойства, использующие @Value, работают
am.clientId= $ {account.clientId} am.issuer = $ {account.issuer}
используется как
@Value("${am.clientId}")
private String clientId;
@Value("${am.issuer}")
private String clientSecret;
Case2: используется как свойства пружины, не работает Я использую те же свойства для пружины oAuth, и она не срабатывает
okta.oauth2.clientId = $ {account.clientId}
okta.oauth2.issuer = $ {account.issuer}
Журнал исключений
java.lang.IllegalArgumentException: Не удалось разрешить pдержатель кружка 'account.clientId' со значением "$ {account.clientId}" account-web_1 |at org.springframework.util.PropertyPlaceholderHelper.parseStringValue (PropertyPlaceholderHelper.java:172) ~ [spring-core-5.0.5.RELEASE.jar! /: 5.0.5.RELEASE] account-web_1 |at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders (PropertyPlaceholderHelper.java:124) ~ [spring-core-5.0.5.RELEASE.jar! /: 5.0.5.RELEASE] account-web_1 |at 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]
[Обновление]
Итак, отладив код пружины, я понял, что проблема только со свойством
okta.oauth2.issuer
У Github есть один проблема относительно того же самого, но у версии okta spring boot satarter 0.6.0 все еще есть проблема.