Я пытался получить SecurityContext :: getAuthentication следующим образом:
@Component
public class AuthenticationEntryPoint implements ServerAuthenticationEntryPoint {
@Override
public Mono<Void> commence(ServerWebExchange serverWebExchange, AuthenticationException authException) {
return ReactiveSecurityContextHolder.getContext()
.switchIfEmpty(Mono.error(new IllegalStateException("ReactiveSecurityContext is empty")))
.map(SecurityContext::getAuthentication)
.flatMap(a -> { return Mono.empty();});}
, однако контекст пуст. похоже, что реактивная цепочка была разорвана.
Вот фрагмент кода securityconfig:
@EnableReactiveMethodSecurity
public class SecurityConfig {
private AuthenticationEntryPoint authenticationEntryPoint;
@Bean
public SecurityWebFilterChain configure(final ServerHttpSecurity http) {
http
.csrf().disable()
.authorizeExchange()
...
.and()
.exceptionHandling()
.authenticationEntryPoint(authenticationEntryPoint)
...
return http.build();
}
задаюсь вопросом, отсутствует ли что-нибудь или есть ли другой способ получить контекст в аутентификацииEntryPoint .