私は、Spring Securityを使用して認証するRESTfulなWebサービスを持っています。私はAuthenticationProvider
というカスタムをそのアプリケーションのauthenticate()
ビジネスロジックをリモートサービスに委譲するアプリケーションに登録しました。これは利用できない可能性があります。リモートサービスが利用できないときは、503 Service Unavailable
を返すことができるようにしたい。Springセキュリティ:503サービスを返す方法はありませんか?
スプリングセキュリティハンドルは403 Forbidden
ですが、503
ロジックをいくつか追加したいと思います。 AuthenticationProvider
インターフェイスはランタイムAuthenticationException
を投げることができますが、その子孫はProviderManager
で処理されます。ここで
は私WebSecurityConfigurerです:
// how do I hook this into 'http'???
@Autowired
private MyAuthenticationFailureHandler myAuthenticationFailureHandler;
protected void configure(HttpSecurity http) throws Exception {
http
.authenticationProvider(myAuthenticationProvider)
.httpBasic()
.and()
.exceptionHandling()
.authenticationEntryPoint(myAuthenticationEntryPoint)
.accessDeniedHandler(myAccessDeniedHandler)
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
...
私はカスタムAuthenticationProvider
を持って与えられ、希望503
を返すようにHttpSecurity
を設定するにはどうすればよいですか?
* - 確かに、これはコーナーケースです。
ControllerAdvice'が適用される@あなたは 'ControllerAdvice –
を作成することができますSpring MVCのみに適用されます。 Spring Security認証レイヤは、ControllerAdviceの前に発生します。 –