feat: Session timeout filter 추가 적용
parent
5b118cddf2
commit
96361c65e4
@ -0,0 +1,77 @@
|
||||
package egovframework.com.cmm.filter;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
*
|
||||
* SessionTimeoutCookieFilter
|
||||
* @author 공통컴포넌트 팀 신용호
|
||||
* @since 2020.06.17
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ---------- -------- ---------------------------
|
||||
* 2020.06.17 신용호 최초 생성
|
||||
*
|
||||
*/
|
||||
|
||||
public class SessionTimeoutCookieFilter implements Filter{
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private FilterConfig config;
|
||||
|
||||
public void doFilter(ServletRequest request, ServletResponse response,
|
||||
FilterChain chain) throws IOException, ServletException {
|
||||
HttpServletResponse httpResponse = (HttpServletResponse) response;
|
||||
HttpServletRequest httpRequest = (HttpServletRequest) request;
|
||||
long serverTime = System.currentTimeMillis();
|
||||
long sessionExpireTime = serverTime + httpRequest.getSession().getMaxInactiveInterval() * 1000;
|
||||
Cookie cookie = new Cookie("egovLatestServerTime", "" + serverTime);
|
||||
boolean secure = request.isSecure();
|
||||
if ( secure ) cookie.setSecure(true);
|
||||
cookie.setHttpOnly(true);
|
||||
cookie.setPath("/");
|
||||
httpResponse.addCookie(cookie);
|
||||
cookie = new Cookie("egovExpireSessionTime", "" + sessionExpireTime);
|
||||
if ( secure ) cookie.setSecure(true);
|
||||
cookie.setHttpOnly(true);
|
||||
cookie.setPath("/");
|
||||
|
||||
// Date dateServer = new java.util.Date(serverTime);
|
||||
// Date dateExpiry = new java.util.Date(sessionExpireTime);
|
||||
// SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
// String serverYMD = format.format(dateServer);
|
||||
// String expiryYMD = format.format(dateExpiry);
|
||||
//System.out.println("=====>>> serverYMD = "+serverYMD);
|
||||
//System.out.println("=====>>> expiryYMD = "+expiryYMD);
|
||||
//System.out.println("=====>>> server TimeStamp = "+serverTime);
|
||||
//System.out.println("=====>>> expire TimeStamp = "+sessionExpireTime);
|
||||
|
||||
httpResponse.addCookie(cookie);
|
||||
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
|
||||
public void init(FilterConfig config) throws ServletException {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue