spring security起步四:退出登录配置以及logout属性详解
来源:互联网 发布:软件开发学费 编辑:程序博客网 时间:2024/05/01 04:51
用户退出登录实质是使当前登录用户的session失效的操作。一般来说,用户退出后,将会被重定向到站点的非安全保护页,比如登录页面.
用户退出功能实现
增加hader.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title></title></head><body> <c:url value="/logout" var="logoutUrl"/> <a href="${logoutUrl }">退出系统</a></body></html>
引入至index.jsp
<body> <%@include file="header.jsp" %> ... ... ...
配置spring security logout 属性
spring-security.xml
......<http auto-config="true" use-expressions="true"> <intercept-url pattern="/*" access="hasRole('ROLE_USER')" /> <form-login login-page="/loginPage" login-processing-url="/login" always-use-default-target="true" default-target-url="/welcome" authentication-failure-url="/loginPage?error=error" /> <logout logout-url="/logout" logout-success-url="/loginPage" invalidate-session="true"/> <csrf disabled="true" /></http>......
现在我们启动项目,登录成功后可以看到如下页面
点击退出登录,会返回到登录页面。
logout 属性详解
- logout-url LogoutFilter要读取的url,也就是指定spring security拦截的注销url
- logout-success-url 用户退出后要被重定向的url
- invalidate-session 默认为true,用户在退出后Http session失效
- success-handler-ref 对一个LogoutSuccessHandler的引用,用来自定义退出成功后的操作
这里需要注意的一点是,spring security 3.x默认的注销拦截url为/j_spring_security_logout,而4.x则默认使用/logout
spring security退出功能相关类
spring security实现注销功能涉及的三个核心类为LogoutFilter,LogoutHandler,LogoutSuccessHandler
LoginFilter是实现注销功能的过滤器,默认拦截/logout或者logout属性logout-url指定的url
LogoutHandler接口定义了退出登录操作的方法
void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication);
LogoutSuccessHandler接口定义了注销之后的操作方法
void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException;
它们之间的类结构图:
spring security退出功能实现流程
spring security在实现注销功能时,大致流程如下
1. 使得HTTP session失效(如果invalidate-session属性被设置为true);
2. 清除SecurityContex(真正使得用户退出)
3. 将页面重定向至logout-success-url指明的URL。
源码下载地址https://github.com/SmallBadFish/spring_security_demo/archive/0.2.0-logout.zip
0 0
- spring security起步四:退出登录配置以及logout属性详解
- spring security起步四:退出登录配置以及logout属性详解
- 10. Spring Security 退出登录logout
- Spring Security——退出登录logout
- spring security起步三:自定义登录配置与form-login属性详解
- spring security起步三:自定义登录配置与form-login属性详解
- spring security起步三:自定义登录配置与form-login属性详解
- Spring Security(10)——退出登录logout
- Spring Security(10)——退出登录logout
- Spring Security(10)——退出登录logout
- Spring Security(10)——退出登录logout
- Spring Security(10)——退出登录logout
- Spring Security-/logout 退出404
- Spring Security 4 退出后再登录,页面停留在登录页,Url却多了一个Logout参数
- Spring Security Logout
- spring security logout
- spring security起步二:自定义登录页
- spring security起步二:自定义登录页
- 20.You have set Tablespace Full Metrics Threshold values for the USERS tablespace as follows:
- IS--A与 Has-a 区别
- Text Reverse
- 会话跟踪
- shell脚本 - sed文件读取指定行
- spring security起步四:退出登录配置以及logout属性详解
- LeetCode 374 Guess Number Higher or Lower
- XML学习及实践
- 直播解决方案/sdk的选择
- Hibernate详解
- buildJSONPacketBody数组形式封装json、JsonReader解析服务器返回值、封装对象、https协议(app提交建议)
- 利用GetPrivateProfileString读取配置文件(.ini)
- Windows&&Linux cmd 常用命令
- jQuery(不完整,待后续整理补充)