从Java Web应用发送服务器端POST

时间:2018-09-24 08:14:17

标签: spring-mvc

目前,我正在开发一个基于spring-mvc的Java应用程序。

此应用程序的功能之一是用户可以将其电子邮件地址更改为另一个电子邮件地址。

当用户更改电子邮件地址时,当前状态功能是通过相同的操作将用户注销,方法是返回

redirect:/j_spring_security_logout 

从更新用户电子邮件地址的控制器方法开始。

新的webapp功能仅支持POST(不支持GET)进行登出,这导致当前因电子邮件地址更改而登出用户的功能中断。

解决此问题的建议方法是什么?

我可以:

a)以某种方式从服务器端发送POST以注销用户?

b)是否以某种方式注销用户服务器端(使会话无效,清除其cookie并将其重定向到登录页面?)?

c)无论如何,应该在更改电子邮件地址的状态下注销用户,还是这很奇怪?

任何建议都值得赞赏。

1 个答案:

答案 0 :(得分:1)

将Spring Security与具有Servlet 3.0(或更高版本)的容器一起使用时,它与HttpServletRequest.logout方法集成。调用此方法时,它将触发注册的Spring Security LogoutHandler。之后,您可以重定向到所需的页面。

@RequestMapping
public String yourMethod(HttpServletRequest request) {
    // your logic here
    request.logout(); // Logout to force a re-login
    return "redirect:/login"; // redirect to page you want
}