2013-06-22 127 views
2

我已經知道如何配置Tomcat,使其HTTP請求重定向到HTTPS:力Tomcat的重定向到HTTPS不改變web.xml安全約束

  1. 啓用和配置SSL連接
  2. 設置正確的「 redirectPort」屬性的非SSL連接器上
  3. 修改web.xml和設置‘運輸保障’爲‘機密’

我的問題是: 是否有辦法實現相同的結果無需修改web.xml文件

我正在尋找一個解決方案,我不必更改作爲WAR文件部署的Web應用程序。因此,諸如添加servlet過濾器或在Web應用程序內部實現重定向等更改不是一種選擇。

感謝您的幫助!

斯蒂芬

+0

是否要讓該Tomcat上的所有應用程序僅使用HTTPS?如果是這樣,你能改變server.xml還是不可能? –

+0

@Darius X:在我的特例中,我不在乎,因爲我知道只會有一個webapp。但有一個解決方案,它可以在每個Web應用或每個主機基礎上啓用,也許可以幫助其他人。 –

回答

2

考慮實現自定義的Tomcat Valve做重定向。 ValveBase是一個好的開始。

+0

我有一個非常類似的想法。我已經實現了一個自定義的[Realm](http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/Realm.html),擴展了[CombinedRealm](http://tomcat.apache .ORG/Tomcat的7.0-DOC/API /組織/阿帕奇/卡塔利娜/境界/ CombinedRealm.html)。這使我可以將我的領域包圍在現有的領域中。通過重寫方法「findSecurityConstraints」,我可以在運行時「修補」傳輸保證設置。它已經非常好用了,我會盡快發佈我的解決方案。 –

3

如果您不想修改應用程序的WAR文件,您還可以將此條目添加到服務器WEB.XML(/tomcat/conf/web.xml)並限制此參數適用於哪些Web應用程序?