根据 Spring Boot Rest Controller 中的角色,同一控制器返回不同数量的信息

Posted

技术标签:

【中文标题】根据 Spring Boot Rest Controller 中的角色,同一控制器返回不同数量的信息【英文标题】:Same controller returning different amounts of information depending on role in Spring Boot Rest Controller 【发布时间】:2018-07-05 05:22:04 【问题描述】:

在我的 REST 服务器中,我有一个映射为“/users”的控制器:

@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<UserModel> getAllUsers() ...

我想使用带有角色的 Spring Boot Security 来确定要返回多少信息。例如:

public class UserModel 
  private MetaDataModel user_metadata;
  private MetaDataModel private_admin_metadata; 

因此,当具有管理员角色的用户调用 getAllUsers 时,UserModel 提供这两个字段,否则它只提供 user_metadata 字段。我完全同意有更好的方法来解决这个问题,所以欢迎提出任何建议!

【问题讨论】:

有很多解决方案。也许您应该使用 Google 并找到一些解决方案,以使您的问题不那么广泛。 【参考方案1】:

设置响应 DTO 的适当属性。并使用 include not null json 注释。参考For Spring Boot 1.2.3, how to set ignore null value in JSON serialization?

【讨论】:

以上是关于根据 Spring Boot Rest Controller 中的角色,同一控制器返回不同数量的信息的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot MongoDB REST - 自定义存储库方法

在 Spring Boot REST 应用程序中处理 gzipped 请求

Scala、Json 和 Spring Boot Rest

如果它是一个 Rest 控制器,如何确保 Spring boot 自动编组一个类的对象

您将如何使用 Spring Boot 处理仅具有可选查询参数的 REST API?

使用spring-boot对rest服务进行访问控制