我已经看到,在5.2.0.M1版本中,当从反应堆(Webflux)上的Spring Security使用OAuth2资源服务器时,无法自定义ServerAuthenticationEntryPoint。
(另请参见https://github.com/spring-projects/spring-security/issues/6052)
但是,当我现在尝试编写自己的ServerAuthenticationEntryPoint时,我在问自己如何在http响应中添加正文? begin(...)方法返回Mono,但我还没有找到在某处指定主体的方法。
有人可以给我一个提示(如果可能的话)吗?
答案 0 :(得分:0)
与此同时,我找到了解决此问题的方法。在这样的 WebSecurityConfiguration 类中的 ServerHttpSecurity 配置中仅添加一个lambda时
http
. ...
.oauth2ResourceServer()
.authenticationEntryPoint((exchange, exception) -> Mono.error(exception));
我可以在我的 AbstractErrorWebExceptionHandler 的自定义实现中处理错误,无论如何我都可以处理所有与Spring安全无关的异常。这可行。我必须从 BearerTokenServerAuthenticationEntryPoint 中复制一些逻辑,以在响应中获得正确的WWW-Authenticate标头,但现在它可以与自定义主体一起正常工作,以防出现来自春季安全性的任何异常。 >