Сервер ресурсов Spring Boot проверяет токен с помощью HTTP POST вместо HTTP GET - PullRequest
2 голосов
/ 16 апреля 2019

У меня есть сервер с зависимостями и конфигурацией, как было сказано Минимальная конфигурация загрузки OAuth2 :

  • весна-безопасности oauth2
  • весна-безопасности oauth2-Автоконфигурирование

Конфигурация безопасности помечена @EnableResourceServer.

Свойства содержат:

spring:
  security:
    oauth2:
      resource:
        token-info-uri: https://token-validation-url/example

Когда я выполняю запрос curl -H "Authorization: xyz" http://localhost:8080/my-endpoint, я получаю 401, но не вижу, чтобы был выполнен HTTP-вызов для проверки токена.

Если я удаляю префикс пружины из свойства, я все равно получаю 401, но он пытается HTTP POST https://token-validation-url/example:

security:
  oauth2:
    resource:
      token-info-uri: https://token-validation-url/example

Если я возьму тот же токен и попробую вручную HTTP GET https://token-validation-url/example?otoken=xyz, он вернет, что он действителен.

Как указать otoken параметр запроса? Почему сервер пытается проверить токен с HTTP POST вместо HTTP GET?

1 Ответ

2 голосов
/ 16 апреля 2019

Заметил, что HTTP POST https://token-validation-url/example?otoken=xyz проверяет то же самое, что и GET, используемый так:

security:
  oauth2:
    resource:
      token-info-uri: https://token-validation-url/example

Просто необходимо установить имя токена:

@SpringBootApplication
public class ExampleApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(ExampleApplication.class, args);
        RemoteTokenServices remoteTokenServices = context.getBean(RemoteTokenServices.class);
        remoteTokenServices.setTokenName("otoken");
    }
}

Другой способ настройки RemoteTokenServices: Настройка сервера ресурсов с RemoteTokenServices в Spring Security Oauth2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...