Spring Security Webflux。如何使ServerWebExchange返回预身份验证主体

时间:2018-10-04 15:26:09

标签: java spring spring-boot spring-security spring-webflux

我无法访问由我的CAS认证系统认证的java.security.PrincipalserverWebExchange.getPrincipal()始终为空。

实际上,这是DefaultServerWebExchange的实现:

@Override
public <T extends Principal> Mono<T> getPrincipal() {
    return Mono.empty();
}

ServerWebExchange的另一种实现是ServerWebExchangeDecorator,其文档显示:

  

注意:如果使用装饰器的目的是覆盖属性   与getPrincipal()类似,请考虑使用ServerWebExchange.mutate()   代替。

因此,我的第一个问题是:如果那是我应该做的,那么在我的WebFlux Security配置中(在下面)什么时候应该使用ServerWebExchange.mutate().getPrincipal()覆盖{ {1}}?

我的第二个问题是:我应该如何获取预先认证的非反应性请求主体?

到目前为止,我发现从ServerWebExchange检索请求Principal的唯一方法是使用反射。但这显然不是我应该做的。

ServerWebExchange.getPrincipal()

0 个答案:

没有答案