我嘗試對(duì)用戶進(jìn)行身份驗(yàn)證(它有效)并從上下文中獲取用戶令牌,但它不起作用。我有一個(gè)簡(jiǎn)單的微服務(wù)應(yīng)用程序作為我的寵物項(xiàng)目,并使用 WebFlux 作為網(wǎng)絡(luò)框架。我嘗試調(diào)試ReactiveSecurityContextHolder#getContext并在flatMap中看到我的用戶令牌在上下文中,但在我的應(yīng)用程序中我鋼有一個(gè)空上下文。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 的構(gòu)建內(nèi)部 - 我希望我將擁有帶有請(qǐng)求標(biāo)頭的完整 WebClient,但正如我上面所描述的 - 我在SecurityUtils.java中有一個(gè)空上下文
1 回答

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