我正在尝试使用Spring Security验证Reactive Spring应用程序中的身份验证。我无法从控制器中的Mono读取内容。当我订阅时,它没有发出任何值。我在控制器中有以下代码:
@Controller
public class TestConroller {
public void test(){
Mono<Authentication> monoAuth=ReactiveSecurityContextHolder.getContext().map(SecurityContext::getAuthentication);
monoAuth.subscribe(authentication->validate(authentication)
}
private void validate(Authentication authentication){
System.out.println(authentication.getPrincipal().getName());
}
}
从不调用validate方法
1条答案
按热度按时间wlwcrazw1#
虽然 “订阅之前什么都不会发生”,但你不需要显式调用
subscribe
,如果你返回Mono<T>
,WebFlux会在幕后订阅,你只需要构建一个结合不同React式运营商的流。