Spring Data REST:从经过身份验证的请求中推断所有者

时间:2015-10-14 18:59:12

标签: spring spring-security spring-boot spring-data-rest

我的@Entity有一个字段owner

@Entity
@EntityListeners({TalkListener.class})
public class Talk {
    private @ManyToOne(targetEntity = User.class, optional = false) User owner;
    // ...
}

注意:我有一个实施@PrePersist的监听器。从我所看到的,不鼓励从那里查找请求参数(也许这也是不可能的,我没有继续研究这个方向)。文档中有section about events,但它似乎纯粹与实体相关,而不考虑请求的上下文。

我想从经过身份验证的用户推断POST请求的所有者。最简单的方法是什么?如果有必要覆盖POST一个片段或链接的示例将非常感激。

更新1
@NeilMcGuigan建议使用Spring Data JPA auditing features,其中包含一个@CreatedBy注释,可以清楚地解决原始问题(我会接受它作为答案)。

更新2
可以找到一个关于使用Spring Data JPA进行审计的好教程,以及在实体生命周期事件中获取主体的替代方法here

出于教育目的,如果我需要从请求中访问某些值来填充我的实体中的值(比如我当前的用例不是@CreatedBy但是有些不同的话),那会是另一种方式吗?

0 个答案:

没有答案