【问题标题】:How do I logout?如何注销?
【发布时间】:2016-05-30 13:48:56
【问题描述】:

我正在制作一个不打算由浏览器使用的 servlet,它将被一个使用 https 请求的 java 应用程序使用。

到目前为止,我已经成功关注http://docs.spring.io/spring-security/site/docs/current/guides/html5//helloworld.html。 如果我尝试访问http://localhost:8080/myservlet/MainServletClass,它将按预期将我重定向到http://localhost:8080/myservlet/login,但我不明白我应该如何使用http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html 中的方法注销

【问题讨论】:

标签: logging spring-security


【解决方案1】:

你不需要使用HttpServletRequest,关注guide you linked in your question.

使用标准 Spring 安全示例表单注销:

<body>
  <div class="container">
    <h1>This is secured!</h1>
    <p>
      Hello <b><c:out value="${pageContext.request.remoteUser}"/></b>
    </p>
    <c:url var="logoutUrl" value="/logout"/>
    <form class="form-inline" action="${logoutUrl}" method="post">
      <input type="submit" value="Log out" />
      <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
    </form>
  </div>
</body>

如果您使用的是最新版本的 Spring security,则使用此表单将对您的登录用户进行身份验证。

如果不是,您需要确保表单操作与 Spring Security 配置中配置的 .logoutUrl() 配置匹配。

【讨论】:

  • 我实际上已经放弃了,并且已经设法使用 netty 而不是 servlet,所以我不知道这是否正确。我应该删除这个问题还是只是假设这个答案是正确的?还是两者都没有?
  • 嗯,这是 Spring 示例中的一个,并且效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 2014-01-19
  • 1970-01-01
  • 2021-01-24
  • 2012-06-18
  • 2017-12-31
  • 2012-08-03
相关资源
最近更新 更多