Что делает аннотация @EnableGlobalMethodSecurity?

В документации мало про это написано, но насколько я понял, она глобально включает security на методы, но в чем тогда разница между ней и @EnableWebSecurity?


Ответы (1 шт):

Автор решения: Komdosh

@EnableWebSecurity вам требуется если вы хотите написать конфигурацию HttpSecurity, WebSecurity, AuthenticationManagerBuilder.

@Override
public void configure(HttpSecurity http){
    http.authorizeRequests().antMatchers("/public/**").permitAll().anyRequest()
        .hasRole("USER").and()
        .formLogin()
        .permitAll();
}

@EnableGlobalMethodSecurity включает AOP для конкретных методов или классов с помощью аннотаций @PreAuthorized, @PostAuthorize и т.п.

@PreAuthorize("hasRole('ADMIN')")
public List<String> getUserPasswords() {
  return userService.passwords();
}
→ Ссылка