カスタムURLパラメータ(パス変数)に基づいてセキュリティルールを作成したいと考えています。 例です。 Brand1とBrand2というリソースの管理者アクセス権を持っているが、Brand3というリソースへのアクセス権がないユーザーがあるとしましょう。以下のリンクを使用してリソースを編集することがあります。パス変数パラメータ付きスプリングセキュリティ
http://myapp/brand/edit/1
http://myapp/brand/edit/2
http://myapp/brand/edit/3
今のセキュリティコンテキストで私は私が得る唯一のものは、ユーザ名であること
<security:intercept-url pattern="/brand/edit/{brandId}"
access="hasRole('ROLE_ADMIN') or
@authorizationService.hasBrandPermission(
#brandId, principal.username)"/>
ような何かをしたいと思います。 BrandIdは常にnullです。 @PreAuthorizeを使ってこれをやっていましたが、うまくいきましたが、現在、すべてのコントローラクラスに分散させるのではなく、単一のxmlファイルにセキュリティ設定を集中したいと考えています。さらに、私が@PreAuthorizeを使用していたとき、私のアクセス拒否ハンドラは私を拒否されたページにリダイレクトせず、醜いAccessDeniedException inseadを表示しました。
私は本当にすべてのアイデアを拒否します。
問題は発生しません。 BrandIdは常にヌルですか?それとも、リソースを保護しないのでしょうか?それとも、醜いAccessDeniedExceptionページですか? –
BrandIDがnull –