Java 停止Tomcat以保存用户凭据

Java 停止Tomcat以保存用户凭据,java,apache,jsp,tomcat,j-security-check,Java,Apache,Jsp,Tomcat,J Security Check,我正在用ApacheTomcat和JavaEE开发一个简单的web应用程序 我使用我自己的JDBC域域来保护和验证用户,我使用一种基本的带有j_security_check的身份验证方法 我已经实现了一个注销Servlet,一切正常。但是,当我注销并尝试再次登录时,应用程序或浏览器正在使用以前的凭据,它甚至不要求我输入其他凭据。它只是使用使用的最新凭据自动登录。只有当我重置服务器并关闭浏览器(Chrome)时,tomcat才会再次请求凭据 我的目标是阻止这种自动登录过程。我做错什么了吗 更新:我

我正在用ApacheTomcat和JavaEE开发一个简单的web应用程序

我使用我自己的JDBC域域来保护和验证用户,我使用一种基本的带有j_security_check的身份验证方法

我已经实现了一个注销Servlet,一切正常。但是,当我注销并尝试再次登录时,应用程序或浏览器正在使用以前的凭据,它甚至不要求我输入其他凭据。它只是使用使用的最新凭据自动登录。只有当我重置服务器并关闭浏览器(Chrome)时,tomcat才会再次请求凭据

我的目标是阻止这种自动登录过程。我做错什么了吗

更新:我的注销Servlet正在执行以下操作:

response.setHeader("Cache-Control", "no-cache, no-store");
response.setHeader("Pragma", "no-cache");

request.getSession().removeAttribute("logonSessData");
request.getSession().invalidate();
response.sendRedirect(request.getContextPath() + "/index.jsp");
我的登录web.xml如下所示:


用户约束
用户页面
/使用者/*
/雷托斯/米西奥尼斯/*
用户
没有一个
基本的
斯佩罗
乌萨里奥·德斯佩罗
用户
Spero数据库连接池
jdbc/spero
javax.sql.DataSource
容器
可分享

如果您的应用程序是Servlet 3.0版本,则应在注销Servlet中使用
request.logout()
。它应该正确地使会话无效并删除用户凭据。请参见javadoc。如果Tomcat没有正确实现它,您应该调用
session.invalidate()

您的注销servlet在做什么?它是否正确地使会话无效?是的,我检查过当我发送错误的凭据数据时,容器拒绝访问。因此,我确定这不是身份验证问题。在使会话无效之前,我也会清除缓存。这不是根本原因。@chntgomez请将您的注销方法添加到问题中。还有一点需要澄清的是,您不能使用基本和j_安全检查。j_安全检查是基于表单的。如果使用Basic,则凭据将存储在浏览器中并自动重新发送。您必须切换到表单。@chntgomez您是通过表单还是浏览器弹出窗口登录的?并将web.xml添加到问题中,尤其是
部分。