2017-12-24 48 views
4

私はspring webfluxにアプリケーションをビルドしています。スプリングセキュリティwebflux(v.M5)は例外処理の際にSpring 4のように振る舞いませんでした。私たちは、例外がServerSecurityContextRepository.loadで、春には500と、この例外を操作するために私ができることは何にHTTPヘッダを更新するとしましょう投げる場合 Spring webflux custom authentication for APISpring Security Webflux/Reactive Exception Handling

私は春のセキュリティwebfluxをカスタマイズする方法については、次の記事を見ました。

しかし、コントローラーにスローされたエラーは、通常の@ControllerAdviceを使用して処理できます。これはwebfluxのセキュリティを強化します。

春webfluxセキュリティで例外を処理する方法はありますか?

答えて

0

私はちょうど同じような問題を抱えていて、たくさんのドキュメントを手に入れました。

私の解決策はResponseStatusExceptionを使用していました。 SpringセキュリティのAccessExceptionが理解されているようです。

.doOnError(
      t -> AccessDeniedException.class.isAssignableFrom(t.getClass()), 
      t -> AUDIT.error("Error {} {}, tried to access {}", t.getMessage(), principal, exchange.getRequest().getURI())) // if an error happens in the stream, show its message 
.onErrorMap(
     SomeOtherException.class, 
     t -> { return new ResponseStatusException(HttpStatus.NOT_FOUND, "Collection not found");}) 
     ; 

これが適切な方向に向いていれば、私は少し良いサンプルを提供できます。