Например:
@PreAuthorize("hasRole('admin') && hasPermission('save', #user)")
void updateUser(User user) {
// some code
}
И некоторые примеры реализации без PreAuthorize.
void updateUser(User user) {
Security.hasRole(Roles.ADMIN);
Security.hasPermission(Permission.SAVE, user);
// some code
}
Второй пример более прост для понимания.Может быть реорганизован IDE (переименовать роль или найти все виды использования ролей).Проверка кода во время компиляции.Работай быстрее.И, возможно, другие преимущества.
Почему разработчики Spring-Security выбрали аннотации и SpEL?Может кто-нибудь объяснить это?
Только одна причина, которую я могу найти - более легкий доступ к ApplicationContext.Но, насколько я понимаю, Spring Security в любом случае работает через синглтон SecurityContextHolder.