Я пишу здесь, потому что не могу получить рабочий пример реализации клиента oauth2 в весенней загрузке 3.5.7.
Я впервые реализую этот тип аутентификации, и мне не удается заставить его работать.
Я пытаюсь понять, что делать, просматривая документацию здесь. Мне предоставили 2 API: [list] [*]https://myapi/.../openid-connect/token (это единственный URI, который у меня есть, у меня нет эмитента-uri)
запрос: [/list] [list] [*]Токен на предъявителя access_token [/list] Вот шаги, которые я выполнил: [list] [*]создайте приложение весенней загрузки с oaut2client и стартовым веб-сайтом
поэтому я настраиваю следующие bean-компоненты [code]@Bean public OAuth2AccessTokenResponseClient accessTokenResponseClient() { return new RestClientClientCredentialsTokenResponseClient(); } [/code] Я не думаю, что мне нужно настраивать свой запрос/ответ, поэтому я перехожу к созданию следующего bean-компонента [code]@Bean public OAuth2AuthorizedClientManager authorizedClientManager( ClientRegistrationRepository clientRegistrationRepository, OAuth2AuthorizedClientRepository authorizedClientRepository) {
return "index"; } } [/code] и я попытаюсь получить доступ к конечной точке "/", но получу исключение:
[code]IllegalArgumentException: principal cannot be null.[/code]
если я попытаюсь получить доступ к /oauth2/authorization/my-client, вместо этого я получу это исключение
[code]Invalid Authorization Grant Type (client_credentials) for Client Registration with Id: my-client[/code]
И, конечно, если я попытаюсь получить доступ ко второму API, я снова получу исключение.
Я не использую реактивное программирование, поэтому не использую Spring WebClient [code]@RestController public class TestController { private final RestClient restClient;
public TestController(RestClient restClient) { this.restClient = restClient; }
@GetMapping("/sites") public SiteListResponse listaLocali(@RequestParam String vat) { return this.restClient.get() .uri("https://anotherapi/mylist?vat_number=" + vat) .attributes(clientRegistrationId("my-client")) .retrieve() .body(SiteListResponse.class); } } [/code] Я не самый быстрый ученик, я больше обучаюсь визуально, и поначалу мне трудно понять документацию, поэтому, пожалуйста, не будьте злыми, спасибо.
Я пытался просмотреть некоторые видео, подобные этому, но, похоже, это не помогло решить мою проблему.