0

我在 java 中有一个函数,它接收一个 SOAP 请求(一个 java 对象)并验证请求参数。一旦验证,此请求将进一步用于业务逻辑。在验证请求时,如果函数发现无效参数,它会尝试纠正它并更改其值。这意味着,作为函数参数接收的请求对象将被修改。该函数不能创建一个新请求并用有效参数填充它然后返回它,因为该函数已经返回一个响应对象。

那么,现在的问题是,改变作为输入参数的对象状态是否正确?我认为不是,因为调用函数不知道传递的对象状态正在被修改,除非我们在 java doc 中提到它并且调用者仔细阅读。

有替补吗?

4

1 回答 1

0

我建议创建一个“已验证”/“已纠正”参数的映射并将其添加为请求属性。您可以将此对象与响应一起发送,以让调用者查看实际处理了哪些数据。

如果可以避免,我不会向业务逻辑函数发送请求对象,而只会发送经过验证的数据。

另外,请记住,尝试“更改”请求参数是棘手且危险的。入侵系统的常见方法之一是发送意外输入并查看系统是否会处理它(SQL 注入、将脚本作为无辜文本传递......)。

于 2013-10-25T22:47:31.740 回答