@PreAuthorize、@PostAuthorize、@Secured使用方法
时间: 2023-10-26 13:42:42 浏览: 35
@PreAuthorize、@PostAuthorize、@Secured 是 Spring Security 提供的注解,用于控制方法或者类的访问权限。其中 @PreAuthorize 和 @PostAuthorize 注解是基于表达式的权限控制,用于在方法执行前后进行权限的验证。而 @Secured 注解是基于角色的权限控制,用于在方法执行前验证用户是否具有指定的角色。
具体使用方法如下:
1. @PreAuthorize:用于在方法执行前进行权限验证。示例代码如下:
@PreAuthorize("hasRole('ADMIN')")
public void delete(String id) {
// ...
}
这段代码表示只有具有 ADMIN 角色的用户才能执行 delete 方法。
2. @PostAuthorize:用于在方法执行后进行权限验证。示例代码如下:
@PostAuthorize("hasPermission(returnObject, 'READ')")
public Object getById(String id) {
// ...
}
这段代码表示在 getById 方法执行后,会对返回的结果进行权限验证,只有具有 READ 权限的用户才能访问。
3. @Secured:用于基于角色的权限控制。示例代码如下:
@Secured("ROLE_ADMIN")
public void save(User user) {
// ...
}
这段代码表示只有具有 ROLE_ADMIN 角色的用户才能执行 save 方法。
注意:在使用 @PreAuthorize 和 @PostAuthorize 注解时,需要在配置类中添加 @EnableGlobalMethodSecurity 注解,开启方法级别的安全控制。