在 Vert.x web 中,多个请求将在同一个线程上交错

In Vert.x web will multiple requests be interleaved on the same thread

所以我知道在标准 vert.x web 中,请求将始终在同一个线程上,即使它通过异步操作也是如此,除非您手动启动一个线程。我想弄清楚的是,安全信息是否可以在请求的整个生命周期中保留在线程上。这似乎是不可能的,因为根据定义,线程似乎将被重用,并且可以很容易地在其上交错多个请求,但我想验证一下我是否遗漏了什么。

我的主要目标是让我的域可以使用安全信息,而不是强迫每个人通过请求传递它并可能搞砸,所以提出了这个问题。

事实上,您不能在事件循环线程上保留安全信息,因为它将同时用于为不同的用户提供服务。

在Vert.x4中,会有一个tracing SPI,引入了local context的概念。我用它创建了一个 contextual logging 库。

应该可以使用相同的原理传播安全信息。