Вчера я новичок в webflux весной. Я реализовал с помощью JWT, и он возвращает 401 ответ за исключением первого запроса.
@Bean
public SecurityWebFilterChain securitygWebFilterChain(ServerHttpSecurity http) {
return http.requestCache()
.requestCache(NoOpServerRequestCache.getInstance()).and().securityContextRepository(NoOpServerSecurityContextRepository.getInstance()).exceptionHandling()
.authenticationEntryPoint((swe, e) -> {
return Mono.fromRunnable(() -> {
swe.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
});
}).accessDeniedHandler((swe, e) -> {
return Mono.fromRunnable(() -> {
swe.getResponse().setStatusCode(HttpStatus.FORBIDDEN);
});
}).and()
.csrf().disable()
.formLogin().disable()
.httpBasic().disable()
.logout().disable()
.authenticationManager(authenticationManager)
.securityContextRepository(securityContextRepository)
.authorizeExchange()
.pathMatchers(adminAccess.toArray(new String[0])).hasAuthority("ADMIN")
.pathMatchers(userAccess.toArray(new String[0])).hasAuthority("USER")
.pathMatchers(guestAccess.toArray(new String[0])).permitAll()
// all other requests need to be authenticated
.anyExchange().authenticated().and().exceptionHandling()
.and().build();
}
. также после генерации он разрешает только один ответ, и после этого все мои запросы становятся неавторизованными.