Jetty - 如何在web.xml中以编程方式强制执行安全性约束

时间:2015-10-16 17:05:32

标签: java servlets jetty war servlet-filters

在我们的web.xml中,我们有以下安全约束

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Everything on the app</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

这很有效,除非我们需要以编程方式打开和关闭此约束,因此基本上需要编写一个过滤器来执行类似的操作。这可能在码头吗?基本上我们需要能够根据自定义配置系统打开或关闭它。

1 个答案:

答案 0 :(得分:1)

可以在Jetty中进行,但我认为你不能在jetty.xml中有条件地做到这一点。

我知道你可以通过在应用程序中嵌入Jetty并以编程方式配置和实例化Jetty服务器来实现。我不知道这是如何适合您的部署方案的,但这里是一个嵌入式Jetty服务器的示例,它在所有连接上强制执行CONFIDENTIAL。您可以修改它以有条件地应用ConstraintSecurityHandler(内置调用buildConstraintSecurityHandler),具体取决于您的自定义配置的设置方式。

clean:
    bash ./cleanup.sh