我的 Web 应用程序在共享服务器(Websphere)中运行,现在我的应用程序针对 HTTP 和 HTTPS 请求运行。通常,当应用程序运行时,它会显示如下 https://localhost:9443/index.jsp。如果用户尝试将 https 更改为 http 并提交请求,则服务器接受该请求。我需要避免这种情况,并使应用程序仅支持应用程序级别的 https 请求。请任何人帮助我。
问问题
6311 次
3 回答
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>
user-data-constraint
在您的 web.xml 中添加以上内容。这会将所有http
请求重定向到https
.
于 2012-05-09T07:17:40.313 回答
0
拒绝用户非 https 连接的另一种方法是简单地删除 http 传输链;转到应用程序服务器 > 您的服务器 > Web 容器传输链,选择 WCInboundDefault 并单击删除。现在您只剩下 WCInboundDefaultSecure 传输链,它侦听 SSL 端口。
另一种同样有效的替代方法是在 Virtual Hosts > default_host > Host Aliases 中为您的非 https 端口删除主机别名——这感觉像是一个不那么残酷的配置更改:)
如果您更喜欢重定向而不是限制,我建议您在访问应用程序服务器之前执行此操作,例如在 Web 服务器或负载均衡器上。如果您在 WAS 前使用 Apache HTTP 服务器或 IBM HTTP 服务器,您可以使用 mod_rewrite 管理重定向。
于 2012-05-09T18:35:23.767 回答
0
验证是否在 WebSphere 管理控制台中启用了全局和应用程序安全性。
于 2012-05-24T14:24:47.150 回答