Встречается на собеседованиях • сегодня

Какие знаешь механизмы авторизации в Spring Security

Spring Security предоставляет несколько механизмов авторизации:

  1. На основе ролей – проверка прав через hasRole(), hasAnyRole():
java
http.authorizeRequests()
    .antMatchers("/admin/**").hasRole("ADMIN")
    .antMatchers("/user/**").hasAnyRole("USER", "ADMIN");
  1. На основе выражений (SpEL) – более гибкие проверки через access():
java
http.authorizeRequests()
    .antMatchers("/project/{id}").access("@securityService.canAccessProject(authentication, #id)");
  1. Pre/Post аннотации – проверки на уровне методов:
java
@PreAuthorize("hasRole('ADMIN') or #user.id == authentication.principal.id")
public void updateUser(User user) { ... }
  1. ACL (Access Control List) – для сложных разрешений на уровне объектов.

  2. Кастомные AccessDecisionVoter – реализация собственной логики голосования.

  3. JSR-250 @RolesAllowed – стандартная Java аннотация.

Для большинства случаев хватает ролей и SpEL. ACL и кастомные voters используются в сложных сценариях.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы