4

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

Spring HATEOAS 对建链有彻底的支持,但是主ResourceAssember界面只提供了一个单独的适配器方法,它接受一个域对象并返回一个资源对象,没有提供额外的参数(例如当前的 Spring Security 用户),也ResourceSupport没有Resource<T>提供过滤返回的字段的工具。

我目前倾向于的方法是实现toResourceforResourceAssembler<Customer, CustomerResource>手动挖掘当前 Spring Security 凭据并在此时应用过滤,本质上是手写一个多阶段复制构造函数,它将添加公共字段,然后是 for-friends 字段,然后是资源对象的私有字段。

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

4

0 回答 0