0

アプリケーションに 2 種類のロールがあるとします。

  1. 管理者
  2. ゾーンマネージャー

管理者はすべてのオフィス ID を取得できますが、ゾーン マネージャーは自分のゾーンに割り当てられたオフィスのみを取得できます。コントローラーで私はこのようなものが欲しい

@RequestMapping(method = RequestMethod.GET)
Collection<Long> getOfficeIds(){
    // returns all office ids in system
}

@RequestMapping(method = RequestMethod.GET, value = "/{zoneId}")
Collection<Long> getOfficeIds(@RequestParam("zoneId") long zoneId){
    // returns all office ids in the zone
}

ここで、すべてのユーザーに、引数なしのバージョンのみ (最初の方法) でリクエストを送信してもらいたいと考えています。システムは、コントローラーにアクセスする前にユーザー ロールを取得し、適切なコントローラー メソッドを呼び出す必要があります(管理者の場合は最初のメソッドを呼び出し、ゾーン マネージャーの場合は適切なゾーンで 2 番目のメソッドを呼び出します)。

問題は、それが可能かどうかです。はいの場合、これを行う最良の方法は何ですか? サーブレット フィルターでリクエストを変更してみることもできます。メソッド引数リゾルバーを使用する方法はありますか?

4

1 に答える 1