Spring Security - allowAll () не разрешает доступ без аутентификации - PullRequest
2 голосов
/ 28 марта 2019

Я хочу разрешить доступ для неаутентифицированных только по нескольким путям: / Everyone1 / что-то1, / Everyone2 / что-то2 и / Everyone3 / **. Для остальных путей я хочу, чтобы разрешались только аутентифицированные запросы.

Пока у меня есть "класс WebSecurityConfig расширяет WebSecurityConfigurerAdapter" с:

@Override
  protected void configure(HttpSecurity httpSecurity) throws Exception {
    JwtAuthenticationFilter jwtAuthenticationFilter = new JwtAuthenticationFilter(
      jwtUtils, this.accessCookie, this.selectedRoleScopeCookie);

    httpSecurity.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);

    httpSecurity.cors().and().csrf().disable();

    httpSecurity.authorizeRequests()
      .antMatchers("/everyone1/something1", "/everyone2/something2", "/everyone3/**")
      .permitAll()
      .anyRequest().authenticated()
      .and().httpBasic().disable();
  }

и в "jwtAuthenticationFilter" я устанавливаю аутентификацию как:

  private void setAuthentication2(String username, String someData, boolean authenticated) {
    User user = new User(username, "", new ArrayList<>());
    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(user, null, new ArrayList<>());
    if (!authenticated) {
      authentication.setAuthenticated(false);
    }

    AuthenticationDetails authenticationDetails = new AuthenticationDetails(someData);
    authentication.setDetails(authenticationDetails);

    SecurityContextHolder.getContext().setAuthentication(authentication);
  }

К сожалению, вышеуказанная конфигурация блокирует каждый запрос, как аутентифицированный, так и не прошедший аутентификацию.

любая помощь будет оценена.

Спасибо!

1 Ответ

0 голосов
/ 30 марта 2019

Этот метод авторизует некоторые пути для аутентифицированных запросов. Что вам нужно, это:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/everyone1/something1", "/everyone2/something2", "/everyone3/**");
}

Тогда анонимные запросы могут получить доступ к этому пути.

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