将所有HTTP请求重定向到HTTPS请求,而无需更改代码

时间:2012-05-09 07:12:30

标签: java websphere

我的Web应用程序在共享服务器(Websphere)中运行,现在我的应用程序同时运行HTTP和HTTPS请求。通常在应用程序运行时,它显示如下 https://localhost:9443/index.jsp。 如果用户尝试将https更改为http并提交请求,则服务器接受该请求。我需要避免这种情况,并使应用程序仅支持应用程序级别的https请求。请有人帮助我。

3 个答案:

答案 0 :(得分:1)

<security-constraint>
<web-resource-collection>
    <web-resource-name>https</web-resource-name>
    <description>No Description</description>
    <url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
    <description>No Description</description>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>

在您的web.xml中添加上述user-data-constraint。这会将所有http请求重定向到https

答案 1 :(得分:0)

拒绝用户非https连接的另一种方法是简单地删除http传输链;转到应用程序服务器&gt;你的服务器&gt; Web容器传输链,选择WCInboundDefault并单击删除。现在,您只能使用WCInboundDefaultSecure传输链,它会侦听SSL端口。

另一个同样有效的替代方法是在虚拟主机上删除非https端口的主机别名&gt; default_host&gt;主机别名 - 这感觉就像一个不太残酷的配置改变:)

如果您更喜欢重定向而不是限制,我建议您在点击应用服务器之前执行此操作,例如在Web服务器或负载均衡器上。如果您在WAS前使用Apache HTTP服务器或IBM HTTP Server,则可以使用mod_rewrite管理重定向。

答案 2 :(得分:0)

验证WebSphere管理控制台中是否已启用全局和应用程序安全性。