次のコードで例外ハンドラーを設定しています
@ExceptionHandler(Throwable.class)
public @ResponseBody CustomResponse handleException(Throwable throwable){
// handles exception, returns a JSON
}
SpringSecurity3.1を使用しています。認証なしで操作を行おうとすると、アプリケーションはAccessDeniedExceptionをスローします。この方法には決してなりません。ただし、他の例外を除いて正常に動作します。それはそれが機能することになっている方法ですか?または、私のコードに何か問題がありますか?
これは解決策のように見えます。しかし、一点で例外を処理できればもっと良いでしょう。
これが私の設定ファイルです
<global-method-security secured-annotations="enabled" pre-post-annotations="enabled" />
<http auto-config="true" use-expressions="true">
//intercept urls
<form-login login-page="/signin" default-target-url="/" always-use-default-target="true"/>
</http>
<authentication-manager>
<authentication-provider user-service-ref="userDetailsService">
<password-encoder ref="encoder" />
</authentication-provider>
</authentication-manager>
<!-- This encoder doesn't require a salt -->
<beans:bean id="encoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
アップデート
ここでは、ユーザーは認証されていません(ROLE_ANONYMOUS)。保護されたページにアクセスしようとすると、ログインURLにリダイレクトされます。ここでの私の問題は、AJAX呼び出しを行うことです。したがって、ModelAndViewを返すメソッドへのリダイレクトは機能しません。この辺りに仕事はありますか?