4

特定のリソース (たとえば、/people/4) に対するリクエストが、リクエストを実行するユーザーに応じて異なるレベルの詳細を返すマルチユーザー アプリケーションを作成しています (たとえば、ユーザー 4 またはサポート担当者はリソース全体を表示し、他のユーザーはリソース全体を表示します)。ユーザーの電子メール アドレスなどの特定のフィールドは表示されません)。

Spring HATEOAS はリンクの構築を完全にサポートしていますが、メインResourceAssemberインターフェースは、ドメイン オブジェクトを取得してリソース オブジェクトを返す単一のアダプター メソッドのみを提供し、追加のパラメーター (現在の Spring Security ユーザーなど) を提供せず、提供ResourceSupportResource<T>提供もしません。返されたフィールドをフィルタリングする機能。

私が現在傾いているアプローチは、for の実装toResourceResourceAssembler<Customer, CustomerResource>手動で現在の Spring Security 資格情報を掘り出し、その時点でフィルタリングを適用することです。基本的には、パブリック フィールドを追加し、次に for-friend フィールドを追加するマルチステージ コピー コンストラクターを手書きします。 、次にプライベート フィールドをリソース オブジェクトに渡します。

タスクを処理するためのより統合された、特に宣言的な方法はありますか?それとも、これが現在利用可能な最良のソリューションですか? このアプローチは Spring Data REST コントローラーと統合されますか? それとも、アセンブリを自分で処理したい場合、ページングなどを再実装する必要がありますか?

4

0 に答える 0