2013-06-22 82 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应用程序?