Я разрабатываю микросервис RESTful, который функционирует как OAuth Resource Server
. Это приложение Spring Boot, а основной класс помечен @EnableResourceServer
. Целью данной услуги является проверка JWT
токенов, которые отправляются ему в качестве токенов на предъявителя. Идея состоит в том, что, как только запрос достигает службы, пользовательский ZuulFilter
, который я написал, будет запускаться и проверять токен. Одна из проверок, которую мне нужно выполнить, - убедиться, что токен действителен, и это делается путем проверки того, что его ключ находится в хранилище ключей.
Проблема в том, что данные из предоставленного мною хранилища ключей не читаются приложением. Я проверил, что URL-адрес хранилища ключей правильный, и что он содержит тестовые ключи, которые я поместил туда, но когда я перебираю свой код, мой ZuulFilter
не достигается, потому что один из фильтров, примененных @EnableResourceServer
, уже проверяет токен по отношению к хранилищу ключей и отклоняет входящие запросы, потому что считает хранилище ключей пустым.
Это моя конфигурация YAML
spring:
application:
name: my-app-name
security:
oauth2:
client:
client-id: my-client-id
resource:
user-info-uri: https://my-user-info-uri
resourceserver:
jwt:
jwk-set-uri: https://my-jwks-uri
Вот мой класс
@EnableZuulProxy
@EnableResourceServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Может кто-нибудь сказать, почему приложение не читает из хранилища ключей? Как я построил эту хорошую практику для OAuth SSO
службы?