java - spring boot 中所有资源都需要设置默认角色吗?

标签 java spring spring-boot spring-security

是否可以为所有资源设置默认 ROLE_ADMIN,然后在指定资源上用 ROLE_USERIS_AUTHENTICATED_ANONYMOUSLY 覆盖它?

目前我为管理员用户使用@Secured({"ROLE_ADMIN"})(例如获取所有用户列表),@Secured({"ROLE_USER", "ROLE_ADMIN"}) 用于普通用户(例如获取他们的订单列表)和 @Secured("IS_AUTHENTICATED_ANONYMOUSLY") 用于匿名用户(例如获取列表产品或登录)。

现在我需要将 ROLE_ADMIN 设置为所有资源的默认必需角色,然后根据资源要求覆盖它。

最佳答案

@RestController
@RequestMapping(value = "test", produces = MediaType.APPLICATION_JSON_VALUE)
@PreAuthorize("hasAuthority('ROLE_ADMIN')")
public class TestResource {

@PreAuthorize("hasAuthority('ROLE_USER')")
@RequestMapping(value = "somePath", produces = MediaType.APPLICATION_JSON_VALUE)
public Object apiEndpoint() {return null;}

}

在 Controller 顶部放置一个默认的@PreAuthorize。它将适用于所有公共(public)方法。如果你想覆盖:把另一个 @PreAuthorize 放在方法上面。

关于java - spring boot 中所有资源都需要设置默认角色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53427557/

相关文章:

java - 最大化 JFrame |无全屏

java - 如何防止调度程序中调用异步函数的竞争条件?

java - 如何使用Hibernate4Module

java - 在 Spring Boot 应用程序中使用 cloudfoundry api 时如何进行身份验证

java - Hibernate,保存新实体而不获取关联实体

java - 具有多个实体的 Spring data jpa 不回滚 - PostgreSQL

java - API 响应数据数组计数小于 Rest Assured Java 中的实际计数

spring - SpringResourceTemplateResolver 和 ClassLoaderTemplateResolver 有什么区别?

java - Java Netbeans Glassfish Web 应用程序中不存在此应用程序 (app_id)

java - 如何让 Java rest api 调用立即返回而不是等待?