カスタム 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 に表示しました。
どんなアイデアでも本当に感謝します。