2

「セキュリティ アノテーション」(@PreAuthorize、@Secured など) から発生する AccessDeniedException を処理する方法 (キャッチ、ログ、リダイレクト フローなど) を教えてください。

私は自分の AccessDeniedHandler を設定しようとしました:

<http auto-config="true" use-expressions="true">
    ...
    <access-denied-handler ref="myAccessDeniedHandler" />
</http>

しかし、許可されていないリソースにアクセスしようとしたときに発生する例外のみをインターセプトしているようです。

しかし、例外は

@PreAuthorize("hasRole('ROLE_ADMIN')")
public void myMethod(){
    System.out.println("Secret Method");
}

はそのように扱われません。

4

1 に答える 1

0

この投稿は少し古いので、もう回答は必要ないと思います。まだ他の人のためにこれに答えています:

最初:あなたは正しいです:<access-denied-handler ref="myAccessDeniedHandler" />リソースのリクエストのみを処理するため、@PreAuthorize.

あなたができることは、Spring-AOP/AspectJ を使用して、特定のアノテーション (あなたの場合は @PreAuthorize) でアノテーションが付けられたすべてのメソッドを参照するポイントカットでアラウンド アスペクトを作成することです。

-annotationsの処理例については、JSF2 with SpringSecurity: handle AccessDeniedException of @Secured-Annotationを参照してください。@Secured

于 2013-10-25T08:33:34.397 に答える