Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅对登录页面限制SSL_Java_Servlets_Ssl_Login_Tomcat7 - Fatal编程技术网

Java 仅对登录页面限制SSL

Java 仅对登录页面限制SSL,java,servlets,ssl,login,tomcat7,Java,Servlets,Ssl,Login,Tomcat7,如何将Servlet配置为仅对登录页面使用SSL,然后对应用程序的其余部分使用普通HTTP。 如果我对需要SSL的登录页面进行了特殊设置,对其余页面进行了特殊设置,并且我使用表单身份验证,指向我之前配置的使用SSL的登录页面,当用户请求受保护的页面时,栏中的URL不是login.page,而是请求的页面,但是主体是登录表单,我可以不使用HTTPS登录。 谢谢.ServletRequest有一种方法可以确定请求是否在安全通道上发出。您的登录页面可以检查此值并重定向到https URL 很抱歉这么说

如何将Servlet配置为仅对登录页面使用SSL,然后对应用程序的其余部分使用普通HTTP。 如果我对需要SSL的登录页面进行了特殊设置,对其余页面进行了特殊设置,并且我使用表单身份验证,指向我之前配置的使用SSL的登录页面,当用户请求受保护的页面时,栏中的URL不是login.page,而是请求的页面,但是主体是登录表单,我可以不使用HTTPS登录。
谢谢.

ServletRequest有一种方法可以确定请求是否在安全通道上发出。您的登录页面可以检查此值并重定向到https URL


很抱歉这么说,但你似乎想做错什么。用户登录后需要https的原因是,如果没有https,会话很容易被劫持,因为会话cookie以纯文本显示。当然,一个人需要在同一个网络中,甚至可能是伪造IP地址,但有这么多WiFi网络,这实际上是小菜一碟(因为大多数用户并不真正知道如何保护它们)


因此,除非您在控制环境中部署应用程序(仅限LAN,用户数量有限-但在这种情况下为什么需要SSL?),否则您可能一直都需要https。

我们有相同的要求-我们绝对必须对登录进行加密,因为密码正在发送,但是我们不想对通信的其余部分进行加密,因为它需要大量的计算

Tomcat 7 SSL配置如何明确说明:

“任何绝对需要安全连接的页面都应检查与页面请求关联的协议类型,如果未指定https,则应采取适当的操作。”

这意味着将未加密的登录请求重新定向到安全URL的责任完全在于登录页面本身。Tomcat中没有任何管理方法可以在servlet之外配置它。真倒霉。 因此,我们必须向应用程序供应商请求此功能,因为它是一个商业软件包


在第二个要求上妥协的粗略解决方法是,在端口8443(例如)上启用HTTPS连接器后,在端口8080上禁用常规HTTP连接器。

OP并不是真正询问如何区分SSL和非SSL请求。OP询问如何将webapp配置为仅登录页面使用SSL。这不能通过声明性安全性实现吗?不是程序安全。您好,谢谢您的回复。登录后我不需要https,我需要在用户登录时保护密码。但正如我在问题中所说,当直接请求登录页面时,服务器需要https,当请求页面时,我被重定向到登录页面,但我可以不使用https登录,我希望登录页面使用https,用户登录后不使用https。好问题,我的帖子(仍然没有回答)可能对您有用(声明式安全)享受它!!