java - 登录后如何正确注销 Java EE 6 Web 应用程序

标签 java security jakarta-ee servlets logout

一个非常简单的要求。登录到 Web J2EE 6 应用程序后,如何让用户再次注销?

我见过的大多数(全部?)书籍和教程都展示了如何向他们的应用程序添加登录/登录错误页面,并使用“j_security_check”方法演示安全主体/角色/领域等的使用——一切都很好。但是目前还不清楚如何赋予用户注销的权力。确实,我如何在 session 超时等之后强制注销?

最佳答案

你应该有 logout servlet/jsp它使用以下方式使 session 无效:

  • 在 Servlet 3.0 之前,使用 session.invalidate() method这也使 session 无效。
  • Servlet 3.0 提供了一个 API 方法 HttpServletRequest.logout()这只会使安全上下文无效,并且 session 仍然存在。

而且,应用程序 UI 应该提供一个链接来调用 logout servlet/jsp

问题:确实,我如何在 session 超时等情况下强制注销?

答案: <session-timeout>在 web.xml 中,您可以定义超时值,之后 session 将被服务器无效。

关于java - 登录后如何正确注销 Java EE 6 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10893727/

相关文章:

java - App Engine 数据存储中的空列表 : Java vs Python

php - 从服务器下载文件到客户端计算机

java - 授予对多个代码库的权限

java - JPA 2 中仅基于一个纯字符串的孤立删除

java - 上传的文件丢失

java - 获取 [SqlExceptionHelper] 不正确的字符串值 : '\xF0\x9F\x90\xBE V...' although the table is in UTF-8

java - 使用 Group By 和 aliasToBean 的 Hibernate 条件查询

PHP session 安全问题

java - 是否可以在一个 bean 中组合容器管理和应用程序管理的实体管理器?

java - Java中的静态成员