例如:有人可以使用Spring-Security PreAuthorize注释吗?
@PreAuthorize("hasRole('admin') && hasPermission('save', #user)")
void updateUser(User user) {
// some code
}
而且没有预先授权一些示例实现。
void updateUser(User user) {
Security.hasRole(Roles.ADMIN);
Security.hasPermission(Permission.SAVE, user);
// some code
}
第二个例子更容易理解。可以通过IDE重构(重命名角色,或查找所有角色用法)。在编译时检查代码。工作更快。并可能有其他优点。
为什么春季安全开发者选择了注释和SpEL?有人能解释吗?
只有一个原因我可以找到 - 更容易访问ApplicationContext。但据我所见,Spring Security通过SecurityContextHolder单例可以工作。