2012-05-09 185 views
0

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

+0

您可以添加一个java servlet过滤器来检查并将http重定向到https吗? – gigadot

+1

你希望我们看看https:// localhost:9443/index.jsp ?? – artbristol

+0

我不想在这里插入过滤概念,有没有什么办法通过修改web.xml来实现它。 – sudhakars10

回答

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

+0

嗨ramesh,感谢您的快速回复我已经尝试过此发布这个问题,但上面的在Tomcat Web服务器上工作,它不适用于Websphere。 – sudhakars10

+0

http://stackoverflow.com/questions/5067917/websphere-security-constraint-in-web-xml-doesnt-work – gigadot

0

拒绝用户非HTTPS连接的替代方法是简单地删除HTTP传输链;转至应用程序服务器>您的服务器> Web容器传输链,选择WCInboundDefault并单击删除。现在只剩下使用WCInboundDefaultSecure传输链,它监听SSL端口。

另一种同样有效的替代方法是删除主机别名,你非HTTPS在虚拟主机端口> default_host的>主机Aliases-这感觉就像是那么残酷配置变化:)

如果你喜欢过重定向限制,我建议您在访问应用程序服务器之前执行此操作,例如在Web服务器或负载平衡器上。如果您在WAS前使用Apache HTTP服务器或IBM HTTP Server,则可以使用mod_rewrite管理重定向。

+0

感谢您的宝贵意见。 – sudhakars10

0

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

相关问题