InzHeaderHttpSessionIdResolver.java 1.11 KB
Newer Older
PWF-WK01\pengwufeng committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
package com.beecode.inz.authentication;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.session.web.http.HttpSessionIdResolver;
import org.springframework.util.StringUtils;

public class InzHeaderHttpSessionIdResolver implements HttpSessionIdResolver{
	
	
	private String headerName = "x-auth-token";
	private String paramName = "token";

	@Override
	public List<String> resolveSessionIds(HttpServletRequest request) {
		List<String> ids = new ArrayList<>();
		String sessionId = request.getHeader(this.headerName);
		if(StringUtils.isEmpty(sessionId)){
			sessionId = request.getParameter(paramName);
		}
		if(!StringUtils.isEmpty(sessionId)){
			ids.add(sessionId);
		}
		return ids;
	}

	@Override
	public void setSessionId(HttpServletRequest request, HttpServletResponse response, String sessionId) {
		response.setHeader(this.headerName, sessionId);
		
	}

	@Override
	public void expireSession(HttpServletRequest request, HttpServletResponse response) {
		response.setHeader(this.headerName, "");
		
	}

}