Пользовательские заголовки в общедоступном запросе JWK для Spring Security OpenID Connect
Я использую OAM Oracle в качестве поставщика аутентификации. Наша настройка требует, чтобы запрос к общедоступной конечной точке JWK (той, которую вы установили с помощью .jwkSetUri()), имел собственный заголовок:
x-oauth-identity-domain-name: AppSpecificDomainName
До сих пор мне не удалось найти правильную конфигурацию параметров в среде Spring Security OpenID Connect.
Я использую Spring Security 5.8.4.
Я смог сделать грязный обходной путь, чтобы хотя бы проверить свою настройку. Я скопировал исходный код класса RestTempate в тот же пакет, который есть в среде Spring, чтобы он сначала загружался классом.
Затем я изменил
protected <T> T doExecute(URI url, @Nullable HttpMethod method, @Nullable RequestCallback requestCallback, @Nullable ResponseExtractor<T> responseExtractor);
метод и добавлен код внедрения заголовка:
...
ClientHttpRequest request = createRequest(url, method);
// Inject custom headers if this is a security-related outbound call
if (url.toString().startsWith("https://access.mycompany.com")) {
request.getHeaders().add("x-oauth-identity-domain-name", "AppSpecificDomainName");
}
...
но очевидно, что я хочу более чистое решение. Так как этот вряд ли ремонтопригоден.