0

我正在使用 WebFlux,我想使用 AOP 登录,如下所示:

Class LogAop {

  @AfterReturning("execution ...")
  public void configSetted() {
     // Getting username by token
     Mono<Sting> username = ReactiveSecurityContextHolder.getContext()
     .map { ... };
    
     username.subscribe ({it -> loggerin.info(it);});

  }
}

在上面的代码中,我想记录用户名,但是没有记录。如何订阅MonoFlux不返回该方法?

注意:有时我想对订阅数据做不同的事情,例如将数据保存在数据库中。

4

1 回答 1

0

除非ReactiveSecurityContextHolder.getContext()不发出任何项目,否则这应该有效。

Mono<String> username = ReactiveSecurityContextHolder.getContext()
                        .map { ... };
username.subscribe (it -> loggerin.info(it));

我建议添加一个日志以找出:

username.log().subscribe (it -> loggerin.info(it));
于 2021-11-08T15:02:09.623 回答