Замена динамически созданного OAuth2RestTemplate без предварительной настройки клиента - PullRequest
0 голосов
/ 27 мая 2020

Поскольку Spring Security OAuth2 становится EOL, такие классы, как OAuth2RestTemplate, теперь не рекомендуются. Я ищу замены для реализации конкретного варианта использования c.

В документах Spring Security 5 рекомендуется регистрировать клиентов со свойствами spring.security.oauth2.client.* (или DSL), а затем создавать bean.

Однако в некоторых случаях предварительная регистрация клиентов невозможна. Рассмотрим очень упрощенный пример:

@GetMapping
public String getData(@RequestParam String lookupParam) {

    String tokenUrl = service1.fetchTokenUrl(lookupParam);
    String clientId = service2.fetchClientId(lookupParam);
    String clientSecret = service3.fetchClientSecret(lookupParam);

    ClientCredentialsResourceDetails resource = new ClientCredentialsResourceDetails();
    resource.setAccessTokenUri(tokenUrl);
    resource.setClientId(clientId);
    resource.setClientSecret(clientSecret);

    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resource);

    return restTemplate.getForObject("https://some/protected/url", String.class);
}

Эти клиенты и URL-адреса извлекаются во время выполнения и могут быть полностью динамическими c.

Как нам go реализовать этот logi c с Spring Security 5?

Примечание. Вопрос Spring Security 5 Замена для OAuth2RestTemplate не является дубликатом - он касается только stati c регистрации клиента.

...