Java 如何为spring boot starter数据rest的默认行为添加小的更改?
我在我的项目中使用了Java 如何为spring boot starter数据rest的默认行为添加小的更改?,java,spring,spring-boot,spring-boot-starter,Java,Spring,Spring Boot,Spring Boot Starter,我在我的项目中使用了springbootstarter数据rest依赖项,这确实节省了大量时间,并自动为项目中定义了关联crudepository存储库的实体创建rest端点。但是假设我的一个实体是Article,经过身份验证的用户(本例中的会话身份验证)可以从POST端点创建文章。在我的文章表中,我有一列用户id,它表示创建文章的用户的id 现在,用户可以使用POST端点并发送user\u id属性,这不是真正安全的,一个用户可以设置此id并假装另一个用户发布了一篇文章。因此,我必须在后端级别
springbootstarter数据rest
依赖项,这确实节省了大量时间,并自动为项目中定义了关联crudepository
存储库的实体创建rest端点。但是假设我的一个实体是Article
,经过身份验证的用户(本例中的会话身份验证)可以从POST端点创建文章。在我的文章
表中,我有一列用户id
,它表示创建文章的用户的id
现在,用户可以使用POST端点并发送user\u id
属性,这不是真正安全的,一个用户可以设置此id并假装另一个用户发布了一篇文章。因此,我必须在后端级别设置此属性(根据用户的会话信息)
我对spring环境有点陌生,现在我能想到的唯一解决方案是完全重写端点,这样我就可以将
user\u id
正确地存储到数据库中。这会适得其反,因为这是对spring boot starter数据rest提供的默认行为的一个非常微小的更改。难道没有一种解决方案,可以在文章对象被推入数据库之前捕获它,这样我就可以设置用户id
并将其发送回默认处理吗?当然,您可以使用jpa entityListeners,您可以使用@preUpdate和@prePersist注释