Java Spring HATEOAS部分响应的最佳实践

Java Spring HATEOAS部分响应的最佳实践,java,spring,spring-security,spring-data-rest,spring-hateoas,Java,Spring,Spring Security,Spring Data Rest,Spring Hateoas,我正在编写一个多用户应用程序,其中对给定资源的请求(例如,/people/4)将根据执行请求的用户返回不同级别的详细信息(例如,用户4或支持代表将看到整个资源,而其他用户将看不到某些字段,例如用户的电子邮件地址) Spring HATEOAS完全支持构建链接,但是主ResourceAssember接口只提供一个适配器方法,该方法接受域对象并返回资源对象,而不提供其他参数(例如当前的Spring安全用户),并且ResourceSupport和Resource都不提供过滤返回字段的功能 我目前倾向于

我正在编写一个多用户应用程序,其中对给定资源的请求(例如,
/people/4
)将根据执行请求的用户返回不同级别的详细信息(例如,用户4或支持代表将看到整个资源,而其他用户将看不到某些字段,例如用户的电子邮件地址)

Spring HATEOAS完全支持构建链接,但是主
ResourceAssember
接口只提供一个适配器方法,该方法接受域对象并返回资源对象,而不提供其他参数(例如当前的Spring安全用户),并且
ResourceSupport
Resource
都不提供过滤返回字段的功能

我目前倾向于的方法是为
resourcesassembler
实现
toResource
,手动挖掘当前的Spring安全凭据,并在此时应用过滤,基本上是手工编写一个多级复制构造函数,该构造函数将添加公共字段,然后是好友字段,然后是privat将字段添加到资源对象


是否有一种更集成的,特别是声明式的方法来处理任务,或者这是目前可用的最佳解决方案?这种方法是否与Spring Data REST控制器集成,或者如果我想自己处理程序集,我是否必须重新实现分页等等?

在数据库中使用列级安全性如何?@NeilMcGuigan没有解决这个问题有几个原因。(1)字段过滤需要在较高级别上进行,根据每个对象设置进行过滤,并最终提供查询指定的字段。(2)Spring数据(或普通JPA)API不与数据库级列限制接口,至少不是以一种理智和可预测的方式。(3)数据存储的很大一部分无论如何都不会是SQL。@chrylis嘿,你找到什么合适的解决方案了吗?