@PreAuthorize ("isAuthenticated ()") против http.anyRequest (). Authenticated () - PullRequest
0 голосов
/ 07 июня 2018

В чем разница с этими двумя различными подходами безопасности?Первый основан на настройке HttpSecurity объекта из Spring Security .Второй основан на размещении @PreAuthorize("isAuthenticated()") для каждого метода или класса.

Первый случай:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest()
                .authenticated();
    }
}

Второй случай:

@PreAuthorize("isAuthenticated()") для каждого метода / класса.

Первый подход выглядит лучше, поскольку вы защищаете все конечные точки одновременно, а использование @PreAuthorize требует больше работы.Но в чем же разница между этими двумя?

1 Ответ

0 голосов
/ 07 июня 2018

Можно авторизовать все запросы в WebSecurityConfigurerAdapter и обеспечить безопасность с помощью PreAuthorize для каждой службы.

Преимущество использования WebSecurityConfigurerAdapter состоит в том, чтобы иметь обзор вашего доступа к безопасности.Но @PreAuthorize позволяет вам иметь более тонкую обработку безопасности.Например, вы можете сказать, что у пользователя есть разрешение на редактирование статьи, только если он написал эту статью.

Я думаю, что в большом приложении можно использовать оба варианта.

...