2016-11-20 11 views
2

SpringデータRESTは非常にうまく動作していますが、特定のリソースを作成するときにユーザーがどのようなパラメータを提供できるかを制限する必要があります。たとえば、作成されたリソースに割り当てられたIDやアカウントのアクティブ化状態をユーザーが指示できないようにする必要があります。SpringデータRESTで作成時に特定の属性を禁止する方法を教えてください。

これまでの私のアプローチは、単にリポジトリ@HandleBeforeCreateイベントハンドラでこれらのフィールドをクリアまたはリセットすることです。リソースの受け入れられたPOSTデータを制限するためのもう1つ、もっと巧妙なオプションがありますか?

また、CRUDコールが明示的にターゲット・リソースの一部ではない追加、コンテキスト属性を指定する必要がありますが、リソースを作成するプロセスで使用することができる場合があります。このケースを処理する適切な方法は何ですか?

+0

ジャクソンをserilizationに使用している場合は、属性とそのセッターにJsonIgnoreを、アノテーションにJsonGetterを使用してください。私はこのトリックを使用して、属性の新しい値をPUTまたはPATCHするのを防ぎます。私はPOSTで試したことはありませんが、それも動作すると思います。 –

答えて

0

org.springframework.validation.Validatorを実装してvalidate(Object object, Errors errors)をオーバーライドしてカスタムバリデーターを定義し、入力フィールドを検証して、入力要求オブジェクトに必要なフィールドを入力または変更します。

詳細についてはhereを参照してください。また、例としてhereを参照することもできます。

関連する問題