17.6. 配置 Servlet 扩展

借助 Servlet 扩展,您可以 hook 到 servlet 部署过程并修改 servlet 部署的各个方面。如果您需要为部署添加额外的身份验证机制或使用原生 Undertow 处理程序作为 servlet 部署的一部分,这时非常有用。

要创建自定义 servlet 扩展,需要实施 the io.undertow.servlet.ServletExtension 接口,然后将您的实施类的名称添加到部署中的 META-INF/services/io.undertow.servlet.ServletExtension 文件中。您还需要包含 ServletExtension 实施编译的类文件。当 Undertow 部署 servlet 时,它将加载来自 部署 类加载器的所有服务,然后调用它们的 handleDeployment 方法。

将包含完整且可更改的部署描述的 Undertow DeploymentInfo 结构传递到此方法。您可以修改此结构来更改部署的任何方面。

DeploymentInfo 结构的结构与嵌入式 API 使用的相同,因此实际上 ServletExtension 具有 与您在嵌入式模式中使用 Undertow 时所具有的相同灵活性。