覆盖Jetty 9中的安全性约束

时间:2017-01-18 13:47:05

标签: jetty servlet-3.0 maven-jetty-plugin

我们正在使用设置为CONFIDENTIAL的安全约束策略强制从http重定向到https。虽然在本地开发中我们想要删除约束。使用Jetty 7,我们使用override-web.xml将传输安全性从机密重新分配到NONE。现在我们迁移到Jetty 9后突然停止了这样做。我怀疑现在使用Jetty 9而不是覆盖传输安全性,它会在列表中添加约束。

如何在本地环境中将安全约束从CONFIDENTIAL覆盖到NONE?

这是来自web.xml的部分:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Some server</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

在本地开发中,我们使用jetty-maven-plugin运行jetty并指定override-web.xml。这是来自override-web.xml的部分:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Some server</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Jetty版本之前:7.6.10.v20130312
Jetty版本之后:9.2.18.v20160721

1 个答案:

答案 0 :(得分:1)

此功能应该在Jetty 9 Jetty 7中工作。

您可以找到here

中的WebApp configuration说明

他们在Jetty 9中更改了一些标签,因此在阅读配置时要格外小心。你应该在pom.xml

中有类似的内容
<configuration>
<webApp>
<overrideDescriptor>{path_to_your_override_xml}</overrideDescriptor>
</webApp>
</configuration>

例如,标签

<webApp> </webApp>

早些时候

<webAppConfig> </webAppConfig>

关注Jetty startup log并验证是否已应用替换:

[INFO] Web overrides = {path_to_your_override_xml}