仅对基于 servlet 的 web 应用程序中的某些页面使用 HTTPS
我有一个基于 servlet 的 web 应用程序在 Tomcat 6 服务器上运行。 URL 方案是 HTTPS。整个网站目前通过 HTTPS 提供服务。但我真正想做的是仅为某些操作(例如购买和登录)设置 HTTPS。 Tomcat 中是否有任何配置可以帮助我轻松完成此操作?
是否需要更改任何代码才能跨 HTTPS 和 HTTP 保持会话?
I have a servlet based webapp running on Tomcat 6 server. The URL scheme is HTTPS. The entire site is currently being served on HTTPS. But what I would really like to do is setup HTTPS only for certain operations like purchase and login. Is there any configuration in Tomcat that can help me do this easily?
Are there any code changes required to persist session across HTTPS and HTTP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实际上,理想情况下,这是在 Web 应用程序的 web.xml 文件中配置的。您只需将某些应该安全的 URL 指定为
并将 HTTPS 要求指定为
即可CONFIDENTIAL
的值。容器将透明地管理重定向。简单的。Really, ideally, this is configured in your web app's web.xml file. You simply specify certain URLs that should be secure as
<security-constraint><web-resource-collection>
and specify HTTPS requirement as<transport-guarantee>
with value ofCONFIDENTIAL
. The container will manage redirects transparently. Simple.您只需要设置一个 HTTP 连接器,您的所有 servlet 也将在 HTTP 上可用。
对于需要 HTTPS 的操作,您需要像这样自己强制执行此操作,
在我们的示例中,登录 URL 可能由用户输入,因此如果输入 HTTP URL,我们会将用户重定向到 HTTPS 页面。
如果您正在谈论 Servlet 会话 (JSESSIONID),那么在 HTTP 和 HTTPS 之间共享会话应该不会有任何问题,因为 Tomcat 不会向 cookie 添加“安全”标志。
You just need to setup a HTTP connector and all your servlet will be available on HTTP also.
For operations requiring HTTPS, you need to enforce this yourself like this,
In our case, the login URL may be typed in by user so we redirect the user to HTTPS page if HTTP URL is entered.
If you are talking about Servlet sessions (JSESSIONID), you shouldn't have any issues sharing sessions between HTTP and HTTPS since Tomcat doesn't add "secure" flag to the cookies.