Я хочу разрешить определенные API шаблона api/v1/public/**
для всех аутентифицированных, а также анонимных пользователей.
У меня есть настройка адаптера Keycloak в моем проекте, и моя Web-конфигурация выглядит следующим образом:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true, jsr250Enabled = true)
public class KeycloakWebConfig extends KeycloakWebSecurityConfigurerAdapter {
// ........ other methods .........//
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors().and().csrf().disable()
.authorizeRequests()
.anyRequest().permitAll();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/api/v1/public/**");
}
}
При такой настройке, когда я вызываю /api/v1/public/ping
API без каких-либо заголовков, она работает нормально. Я получаю ожидаемый ответ.
Однако, если я добавляю случайный или пустой заголовок авторизации при выполнении запроса к тому же API, он не отвечает вообще.
При использовании Postman для отправки запроса он сообщает: «Произошла ошибка при подключении к http://localhost: 8080 / api / v1 / public / ping ».
Используя команду терминала cURL для создания запроса, он ничего не печатает и завершает процесс.
Если я сделаю тот же вызов снова ( используя почтальон или curl) без каких-либо полей заголовка, он снова прекрасно работает. Любая идея, что вызывает это?