Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为spring boot starter数据rest的默认行为添加小的更改?_Java_Spring_Spring Boot_Spring Boot Starter - Fatal编程技术网

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注释