在Spring-Security中,j_spring_security_logout究竟是什么?我听说它被称为"处理程序",但我不确定这意味着什么

Hor*_*ice 3 java spring servlets spring-mvc spring-security

我一直在学习spring和spring-security,并且在spring安全上下文中遇到了标签的auto-config ="true"属性.我被介绍给j_spring_security_logout作为提交以在jsp中注销功能的url.

在jsp中使用如下:

<a href="../j_spring_security_logout">logout buddy</a></p>
<a href="../j_spring_security_login">login</a></p>
Run Code Online (Sandbox Code Playgroud)

Spring提供的这个j_spring_security_logout(魔法)究竟是什么?我听说它被称为处理程序.但我不知道这意味着什么.

先感谢您.

sha*_*zin 9

/j_spring_security_logout浏览器最初发送请求时,它会将org/springframework/security/web/authentication/logout/LogoutFilter注销任务委托给org/springframework/security/web/authentication/logout/LogoutHandler实现

org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler是一个实现,LogoutHandler它有一个logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication)将被调用的方法LogoutFilter.

LogoutHandler主要做了两两件事;

  1. 如果配置为执行此操作,则会使会话无效
  2. 清除SecurityContextHolder存储身份验证详细信息的位置.

  • 是的LogoutFilter实现了Filter,它是Servlet Filter.LogoutFilter与LogoutHanlder的关系是一对多,LogoutFilter可以有多个LogoutHandler. (2认同)