Как разрешить анонимным пользователям доступ к определенной функции только с помощью Spring Security - PullRequest
0 голосов
/ 02 июля 2018

Я использую Spring Security в своем проекте. У меня есть условие, когда анонимные пользователи должны иметь возможность читать из базы данных, тогда как только авторизованные пользователи могут добавлять / обновлять / удалять. Как мы можем упомянуть такую ​​ситуацию в настройках безопасности?

.antMatchers("/user/**").permitAll()

разрешить всем требуется пройти проверку подлинности, но я хочу, чтобы даже ни один из прошедших проверку пользователей не получал доступ с помощью метода GET.

@RequestMapping("/user")
@PreAuthorize("hasAuthority('USER')")
public List<UserAll> getAll() {

    return userService.getAll();
}

А здесь как мне упомянуть, что эта функция должна быть доступна и анонимным пользователям?

1 Ответ

0 голосов
/ 02 июля 2018

В моем классе WebSecurityConfig я использую это:

    .authorizeRequests()
            .antMatchers("/v2/api-docs", "/configuration/ui", "/swagger-resources", "/configuration/security", "/swagger-ui.html", "/webjars/**")
                .permitAll()
            .antMatchers("/secure/rest/**")
                .authenticated()
            .antMatchers("/register**")
                .anonymous()
            .antMatchers("/login**")
                .anonymous()
            .and();

Что он делает, ТОЛЬКО позволяет неаутентифицированным пользователям использовать конечные точки регистрации и входа в систему. Это позволяет ТОЛЬКО аутентифицированным пользователям получать доступ к другим конечным точкам (те, которые начинаются с / secure / rest. Это также позволяет использовать мои конечные точки Swagger как аутентифицированными, так и не аутентифицированными пользователями.

allowAll не требует аутентификации пользователя. Он разрешает все запросы через.

В качестве примечания я рекомендую использовать разные конфигурации безопасности для каждой среды. Я не рекомендую выставлять конечные точки Swagger всем в среде разработчиков. Приведенный выше конфиг предназначен для моих нижних сред разработки.

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