0

SOAPリクエスト(Javaオブジェクト)を受け取り、リクエストパラメータを検証するJava関数があります。この要求は、検証後にビジネス ロジックにさらに使用されます。リクエストの検証中に無効なパラメーターが見つかった場合、関数はそれを修正してその値を変更しようとします。つまり、関数の引数として受け取ったリクエスト オブジェクトが変更されます。関数は、新しい要求を作成して有効なパラメーターを入力し、それを返すことができません。これは、関数が既に応答オブジェクトを返しているためです。

それで、問題は、入力パラメータとして来るオブジェクトの状態を変更する正しい方法ですか? 呼び出し元の関数は、渡されたオブジェクトの状態が変更されていることをJavaドキュメントで言及しない限り、変更されていることを認識せず、呼び出し元が注意深く読み取られるため、そうではないと思います。

代替品はありますか?

4

1 に答える 1

0

「検証済み」/「修正済み」パラメーターのマップを作成し、それをリクエスト属性として追加することをお勧めします。このオブジェクトを応答とともに送信して、呼び出し元が実際に処理されたデータを確認できるようにすることができます。

あなたがそれを避けることができるなら、私はリクエストオブジェクトをビジネスロジック関数に送信せず、検証されたデータだけを送信します.

また、リクエスト パラメータを「変更」しようとするのは、注意が必要で危険なことにも注意してください。システムをハッキングする一般的な方法の 1 つは、予期しない入力を送信し、システムがそれを処理するかどうかを確認することです (SQL インジェクション、スクリプトを無害なテキストとして渡すなど)。

于 2013-10-25T22:47:31.740 に答える