在使用x509身份验证引用筛选器中的身份验证对象时获取null

j2cgzkjk  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(254)

我使用springcloudgateway实现了一个网关服务,将请求路由到不同的下游微服务。我有一些消费者通过x509双向ssl认证。当证书在网关中被剥离时,必须从身份验证对象获取用户,并将其作为请求的一部分传播到下游微服务。
我尝试在身份验证后过滤器中使用reactivesecuritycontext从身份验证对象中检索此用户并将其设置为header,但身份验证对象始终返回为“null”。我用的代码是

ReactiveSecurityContextHolder.getContext()
            .map(SecurityContext::getAuthentication)
            .map((authentication)

我的安全配置类如下所示。

@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) 
{
    return http
        .x509(Customizer.withDefaults())
        .authorizeExchange(exchanges -> exchanges.anyExchange().authenticated())
        .build();
}

有没有人可以帮助回答一个好的方法来读取过滤器中的身份验证,或者在将请求转发到下游之前将用户从身份验证设置为请求。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题