Spring MVC 3.1 で Web サービス (RESTful) を作成し、Spring セキュリティを追加しました。エンドポイントの 1 つは、/users/{id}
管理者のみが使用できるようにする必要があるものです。ただし/users/{id}
、取得したリソースのユーザー名がログインしているユーザーのユーザー名と一致する場合にのみ、ユーザーも使用できます。これは @PostAuthorize アノテーションを使用することで解決されます。
ユーザー アクセス/users/999
(ログイン ユーザーではない) の場合、HTTP ステータス 404 または HTTP ステータス 403 を返す必要がありますか? 現在、私は 404 (見つかりません) を実行していますが、ユーザーがアクセスできないため、403 にするべきでしたか?
もしそうなら、@PostAutorize アノテーションに依存している場合、どのようにそれを行いますか?
@PostAuthorize("returnObject.username == principal.username and hasRole('ROLE_USER')")