Похоже, проблема может заключаться в том, что у вас не подключен @EnableResourceServer к вашей службе аутентификации.
Без этой аннотации любая конечная точка, которая не является частью пакета безопасности Spring (например,/ oauth / token, / oauth / check_token) автоматически потребует авторизацию.
Кроме того, вам может потребоваться добавить аналогичный ResourceServerConfigurerAdapter, чтобы убедиться, что конечные точки ресурса настроены так, чтобы разрешать все следующим образом:
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
private final TokenStore tokenStore;
public ResourceServerConfig(TokenStore tokenStore) {
this.tokenStore = tokenStore;
}
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.tokenStore(tokenStore);
}
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers(HttpMethod.POST).permitAll()
.and()
.logout().disable()
.csrf().disable();
}
}
******* РЕДАКТИРОВАТЬ *********
Если вы можете получить хороший ответ на запрос в браузере, но не симулировать, тоВаша проблема, скорее всего, заключается в том, что ваш клиент Feign не указывает на правильную конечную точку. Обычно вы ожидаете ошибку 404, но поскольку API защищен, вы получаете 401, потому что он даже не позволяет вам узнать, что является действительной конечной точкой, если вы не аутентифицированы или это не защищенная конечная точка
Если у вас естьваш симметричный клиент AuthServiceProxy использует ваш zuul-сервер вместо auth-службы, затем вы можете добавить запись в ваш zuul-фильтр, чтобы увидеть, как выглядят как успешные, так и неудачные запросы. После этого внесите необходимые изменения, чтобы ваш прокси-запрос совпадал с запросом, сделанным вами в браузере, и вы должны хорошо выполнить команду