Брелок + весна. Игнорировать определенные API независимо от заголовка авторизации - PullRequest
0 голосов
/ 04 мая 2020

Я хочу разрешить определенные 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) без каких-либо полей заголовка, он снова прекрасно работает. Любая идея, что вызывает это?

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