Как сделать так, чтобы определенная конечная точка в весенней безопасности была разрешена без аутентификации? - PullRequest
0 голосов
/ 16 января 2020

Я разрабатываю приложение, используя Spring Security.

    @Override
    public void configure(HttpSecurity http) throws Exception {

        // @formatter:off
        http.csrf().disable().authorizeRequests().antMatchers("/api/client/findByVariable?variable=").permitAll();
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().requestMatchers()
                .antMatchers("/api/**").and().authorizeRequests().antMatchers("/api/**")
                .access("#oauth2.hasScope('read') or (!#oauth2.isOAuth() and hasRole('USER'))");
        // @formatter:on
    }

Как я могу изменить приведенный выше код, чтобы разрешить доступ к конечной точке "/ api / client / findByVariable? Variable =", не требуя аутентификации, как если бы не было Spring Security? Я попытался добавить строку:

    http.csrf().disable().authorizeRequests().antMatchers("/api/client/findByVariable?variable=").permitAll();

Но это не работает

1 Ответ

1 голос
/ 16 января 2020

Вы можете игнорировать конечные точки с помощью переопределения метода configure, который дает вам экземпляр WebSecurity:

    @Override
    public void configure(WebSecurity web)
    {
        web.ignoring().antMatchers("/api/client/findByVariable");
    }

Я не уверен, что вы можете также сопоставить параметры запроса, такие как /api/client/findByVariable?variable=*

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