我正在编写一个多用户应用程序,其中对给定资源(例如/people/4
)的请求将返回不同级别的详细信息,具体取决于执行请求的用户(例如,用户4或支持代表将查看整个资源,而其他用户则看不到某些字段,例如用户的电子邮件地址。
Spring HATEOAS完全支持构建链接,但主ResourceAssember
接口只提供一个接受域对象并返回资源对象的单一适配器方法,不提供其他参数(例如当前的Spring)安全用户),ResourceSupport
和Resource<T>
都没有提供过滤返回字段的工具。
我目前倾向于采用toResource
ResourceAssembler<Customer, CustomerResource>
的实现,手动挖掘当前的Spring Security凭证并在此时应用过滤,实质上是手写多阶段复制构造函数,它将添加公共字段,然后是for-friends字段,然后是私有字段到资源对象。
是否有更集成的,特别是声明性的方式来处理任务,或者这是现在可用的最佳解决方案?这种方法是否会与Spring Data REST控制器集成,或者如果我想自己处理程序集,我是否必须重新实现分页等等?