我有點沉迷於此,但合理的解決方案可能有助於不少人(甚至數千人)。我如何覆蓋部署到Tomcat的webapp中的安全約束條件
我想將最新版本的Jenkins(寫作時爲1.599)部署到Tomcat容器(7.0.39),然後強制所有流量使用SSL。
我將$ CATALINA_BASE/conf/server.xml中的連接器設置爲所需的連接器。然後添加以下到$ CATALINA_BASE/conf目錄/ web.xml中......
<security-constraint>
<web-resource-collection>
<web-resource-name>Jenkins</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
但不幸的是,這不會因爲它是由詹金斯戰爭中的web.xml覆蓋工作。
<security-constraint>
<web-resource-collection>
<web-resource-name>other</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<!-- no security constraint -->
</security-constraint>
據我所知,沒有辦法讓我從Tomcat的web.xml強制設置。每當新版本發佈時我都不會手動編輯我的WAR,但這不是一個選項。
因此,問題是,更改服務器或客戶端web.xml以使默認設置仍然存在的最佳方式是什麼,但是我們可以選擇強制執行CONFIDENTIAL的傳輸保證。
歡迎任何想法! :)