Im разрабатывает простую веб-приложение с Apache Tomcat и Java EE.Остановить Tomcat, чтобы сохранить учетные данные пользователя
Я использую свое собственное доменное пространство JDBC для защиты и аутентификации пользователей, и я использую базовый метод проверки подлинности с помощью j_security_check.
Я реализовал выход из Сервлета, и все работает нормально. Но когда я выхожу из системы, и я пытаюсь снова войти в систему, приложение или браузер используют предыдущие учетные данные, и даже не просят меня вводить другие учетные данные. Он просто автоматически регистрируется с использованием последних используемых учетных данных. Только когда я перезагружаю сервер и закрываю браузер (Chrome), tomcat снова запрашивает учетные данные.
Моей целью является предотвращение этого автоматического процесса входа в систему. Я делаю что-то неправильно?
Update: Мой выход из 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 выглядит точно так же, как это:
<security-constraint>
<display-name>userConstraint</display-name>
<web-resource-collection>
<web-resource-name>User pages</web-resource-name>
<description/>
<url-pattern>/users/*</url-pattern>
<url-pattern>/retos/misiones/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>user</role-name>
</auth-constraint>
<user-data-constraint>
<description/>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>SPERO</realm-name>
</login-config>
<security-role>
<description>Usuario registrado de SPERO</description>
<role-name>user</role-name>
</security-role>
<resource-ref>
<description>Spero DataBase Connection Pool</description>
<res-ref-name>jdbc/spero</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Что делает ваш сервлет серфинга? это недействительность сессии должным образом? –
Да, я проверил, что когда я отправляю неверные данные учетных данных, контейнер запрещает доступ. Поэтому я уверен, что это не проблема проверки подлинности. – chntgomez