我嘗試對用戶進行身份驗證(它有效)并從上下文中獲取用戶令牌,但它不起作用。我有一個簡單的微服務應用程序作為我的寵物項目,并使用 WebFlux 作為網絡框架。我嘗試調試ReactiveSecurityContextHolder#getContext并在flatMap中看到我的用戶令牌在上下文中,但在我的應用程序中我鋼有一個空上下文。SecurityConfiguration.java@EnableWebFluxSecuritypublic class SecurityConfiguration { @Bean public SecurityWebFilterChain securityWebFilterChain( AuthenticationWebFilter authenticationWebFilter, ServerHttpSecurity http) { return http .csrf().disable() .httpBasic().disable() .formLogin().disable() .logout().disable() .addFilterAt(authenticationWebFilter, SecurityWebFiltersOrder.AUTHENTICATION) .authorizeExchange() .anyExchange().authenticated() .and() .build(); } @Bean public AuthenticationWebFilter authenticationWebFilter( SecurityTokenBasedAuthenticationManager authenticationManager, TokenAuthenticationConverter tokenAuthenticationConverter) { AuthenticationWebFilter authenticationWebFilter = new AuthenticationWebFilter(authenticationManager); authenticationWebFilter.setServerAuthenticationConverter(tokenAuthenticationConverter); authenticationWebFilter.setSecurityContextRepository(new WebSessionServerSecurityContextRepository()); return authenticationWebFilter; }}主要問題是在我的 WebClient 的構建內部 - 我希望我將擁有帶有請求標頭的完整 WebClient,但正如我上面所描述的 - 我在SecurityUtils.java中有一個空上下文
1 回答

LEATH
TA貢獻1936條經驗 獲得超7個贊
因此,經過調查和調試后,我找到了將流合并為單個流的原因。恕我直言,這并不是這個問題的原因,但現在它有效了。
(...) getAuthHeaders() .flatMap(authHeaders -> buildWebClient(url, authHeaders) .get() (...)
添加回答
舉報
0/150
提交
取消