资源简介
NULL
博文链接:https://309593586-qq-com.iteye.com/blog/2415463

代码片段和文件信息
package springboot.example;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashSet;
import java.util.linkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import org.springframework.session.Session;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.CookieSerializer.CookieValue;
import org.springframework.session.web.http.DefaultCookieSerializer;
import org.springframework.session.web.http.HeaderHttpSessionStrategy;
import org.springframework.session.web.http.HttpSessionManager;
import org.springframework.session.web.http.MultiHttpSessionStrategy;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
/**
* 综合了cookie和header策略
* @author TWSW
*
*/
public class CookieHeaderHttpSessionStrategy implements MultiHttpSessionStrategy HttpSessionManager {
private String headerName = “x-auth-token“;
/**
* The default delimiter for both serialization and deserialization.
*/
private static final String DEFAULT_DELIMITER = “ “;
private static final String SESSION_IDS_WRITTEN_ATTR = CookieHeaderHttpSessionStrategy.class
.getName().concat(“.SESSIONS_WRITTEN_ATTR“);
static final String DEFAULT_ALIAS = “0“;
static final String DEFAULT_SESSION_ALIAS_PARAM_NAME = “_s“;
private static final Pattern ALIAS_PATTERN = Pattern.compile(“^[\\w-]{150}$“);
private String sessionParam = DEFAULT_SESSION_ALIAS_PARAM_NAME;
private CookieSerializer cookieSerializer = new DefaultCookieSerializer();
/**
* The delimiter between a session alias and a session id when reading a cookie value.
* The default value is “ “.
*/
private String deserializationDelimiter = DEFAULT_DELIMITER;
/**
* The delimiter between a session alias and a session id when writing a cookie value.
* The default is “ “.
*/
private String serializationDelimiter = DEFAULT_DELIMITER;
public void setHeaderName(String headerName) {
Assert.notNull(headerName “headerName cannot be null“);
this.headerName = headerName;
}
public String getRequestedSessionId(HttpServletRequest request) {
String authToken = request.getHeader(this.headerName);
if(StringUtils.hasText(authToken)){
return authToken;
}else{
Map sessionIds = getSessionIds(request);
String sessionAlias = getCurrentSessionAlias(request);
String sessionId= sessionIds.get(sessionAlias);
return sessionId;
}
}
public String getCurrentSessionAlias(HttpServletRequest request) {
if (this.sessionParam == null) {
return DEFAULT_ALIAS;
}
String u = request.getParameter(this.sessionParam);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12288 2018-01-19 15:32 CookieHeaderHttpSessionStrategy.java
相关资源
- 东软实训
- VL53L0X 驱动源码
- 专业版 Visio 工具cn_visio_professional_20
- Visio2016 激活工具
- win10远程桌面开启工具
-
开机速度优化工具Startup Dela
yer3.0中 - 易语言取程序运行时间模块源码
- 易语言编译原理 易语言循环首尾配对
- delphi源码-检测是否运行了多个程序
- excelApi 和安装工具
- linux系统下的内存测试工具
- 跟踪,检测IRP的优秀工具IRPTrace
- DebugView、DriverMonitor、IRPTrace、WinObj、
- 第三方winToGo工具
- 易语言API定时关机源码
- 易语言小轩定时关机源码
- Delphi时钟助手源码,定时关机、提醒
- 安卓手机PC端一键重启工具
- delphi源码-实现软件注册机
- 原创:AnyExe2Swf flash exe文件还原、反
- 易语言mp3播放器3源码易语言mp3播放器
- 易语言QEHashV3.0源码
- 易语言打开记事本并写入内容源码
- 易语言完美模块化3.0源码易语言报表
- 易语言凡哥记事本V1源码易语言凡哥记
- 易语言屏幕画笔v3源码易语言屏幕画笔
- 易语言拖盘图标操作例程源码
- 易语言动态随机文本加解密源码
- 易语言自定义加解密文本源码
- 易语言字符串加解密源码
评论
共有 条评论