0

我正在尝试在 Tomcat 上通过 SSL 实现登录。登录 servlet 称为 IniciarSesion,因此我将以下内容添加到 web.xml:

<security-constraint>
            <web-resource-collection>
                <web-resource-name>Seguridad en Acceso</web-resource-name>
                 <url-pattern>/IniciarSesion</url-pattern>
            </web-resource-collection>
            <user-data-constraint>
             <transport-guarantee>CONFIDENTIAL</transport-guarantee>
            </user-data-constraint>
</security-constraint>

现在的问题是,当我尝试通过以下方式获取输入密码时:

String nick=(String)req.getParameter("login");

这将返回 null,从 http 重定向到 https 时请求参数丢失。

我该如何解决这个问题?

4

2 回答 2

0

SSL 的全部意义在于保护传输。如果您首先通过 http 发送登录凭据,那么重定向到 https 是没有意义的,因为您已经“以明文方式”发送了信息。您所做的是将您的登录表单发布到 https URL,或者通过明确设置表单 url,或者通过 https 加载您的登录页面。这将涉及将登录页面添加为受保护的资源,就像您的登录 servlet 一样。

于 2012-10-26T14:04:24.030 回答
0

听起来好像您的登录页面(定义“登录”的地方)没有受到保护。当它通过 HTTP 访问您的 /iniciarSesion servlet 时,tomcat 对 SSL 站点执行 HTTP REDIRECT。真正的重定向不会保留最初发送到服务器的数据,因此您会丢失数据。我的建议是将您的登录页面包含在 CONFIDENTIAL 范围内。

于 2012-10-26T13:43:15.100 回答