Java 检查是否允许用户更新行的最佳实践

Java 检查是否允许用户更新行的最佳实践,java,stored-procedures,spring-jdbc,Java,Stored Procedures,Spring Jdbc,我正在编写一个执行更新的RESTAPI。我在Java代码中使用SpringJDBC,在后端使用存储过程 但在执行更新之前,我需要检查一些条件: 如果用户在正确的组中(此信息来自服务呼叫,而不是来自Spring security) 如果用户将要访问的行 更新有一些特点 等 实际更新由存储过程完成。最好的方法是什么 我是否应该执行选择,获取该行的信息,然后在信息正常的情况下执行更新 或者我应该将所有信息发送到存储过程,让它处理行是否应该更新 编辑:Spring安全性不是一个选项,遗憾的是取决

我正在编写一个执行更新的RESTAPI。我在Java代码中使用SpringJDBC,在后端使用存储过程

但在执行更新之前,我需要检查一些条件:

  • 如果用户在正确的组中(此信息来自服务呼叫,而不是来自Spring security)
  • 如果用户将要访问的行 更新有一些特点
实际更新由存储过程完成。最好的方法是什么

  • 我是否应该执行选择,获取该行的信息,然后在信息正常的情况下执行更新
  • 或者我应该将所有信息发送到存储过程,让它处理行是否应该更新

编辑:Spring安全性不是一个选项,遗憾的是

取决于存储过程是否能够执行所需的所有检查。取决于您希望在何处处理验证。。在sql server中,或者在应用程序服务器上(如果它们是相同的,那么整个问题都无关紧要),这取决于过程的复杂程度,如果验证每个用户需要占用大量资源,那么让平衡落在“忙”较少的框中,如果不是,那么这真的不是问题。如果您已经在使用spring,那么您就不应该有拉弹簧安全性的问题了。使用spring安全性,您可以在每个方法上添加注释,这些注释具有执行该方法所需的角色。。。我认为您应该将流程一分为二:关于组和用户的部分可以在应用程序级别使用spring安全性进行处理,关于行的部分可以委托给DB