https http 세션 공유가 안된다....
인터넷에 검색된 필터도 적용하는데 안된다...
왜그런지 모르지만 로그인후 세션 생성하기전 request.getSession().invalidate(); 을 실행해주니 정상적으로 필터에서
새로운 쿠키가 적용 되었다...
아래는 필터
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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HttpsFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpsRequestWrapper httpsRequest = new HttpsRequestWrapper((HttpServletRequest) request);
httpsRequest.setResponse((HttpServletResponse) response);
chain.doFilter(httpsRequest, response);
}
public void destroy() {
// TODO Auto-generated method stub
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class HttpsRequestWrapper extends HttpServletRequestWrapper {
private HttpServletResponse response = null;
public HttpsRequestWrapper(HttpServletRequest request) {
super(request);
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
public HttpSession getSession() {
HttpSession session = super.getSession();
processSessionCookie(session);
return session;
}
public HttpSession getSession(boolean create) {
HttpSession session = super.getSession(create);
processSessionCookie(session);
return session;
}
private void processSessionCookie(HttpSession session) {
if (null == response || null == session)
return;
Object cookieOverWritten = getAttribute("COOKIE_OVERWRITTEN_FLAG");
if (null == cookieOverWritten && isSecure() && isRequestedSessionIdFromCookie() && session.isNew()) {
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(-1);
String contextPath = getContextPath();
if ((contextPath != null) && (contextPath.length() > 0)) {
cookie.setPath(contextPath);
} else {
cookie.setPath("/");
}
//cookie.setSecure(false);
response.addCookie(cookie);
setAttribute("COOKIE_OVERWRITTEN_FLAG", "true");
}
}
}
web.xml -> 최상위
<filter>
<filter-name>httpsFilter</filter-name>
<filter-class>com.project.common.filter.HttpsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2일정도 개삽질...
'헬로마켓'과 함께하는 스마트한 중고 아이템 거래
Yeezys
Jordan 1
Air Jordan 1
Nike Jordan 1
Jordan 1S
Jordan 1
Jordan Shoes
Jordan Shoes
Nike UK
Yeezy Supply
Yeezy 450
Jordan Retro 4
Nike Outlet Store Online Shopping
YEEZY
Adidas Yeezy Official Website
Yeezy 350
Air Jordan 4
Yeezy Foam Runner
Yeezy Slides
Ray Ban Glasses
Adidas UK
NFL Shop Official Online Store
Yeezy Slides
Adidas Yeezy
Yeezy 350
Yeezy
Yeezy 350
Yeezy Shoes
Yeezys
Off White
Ray Ban
Adidas Yeezy
Yeezy Shoes
Yeezy Shoes
Yeezy 700
Adidas Yeezy
Yeezy
Nike Jordan 1
Jordan 1
Jordan 1
Jordan 1
Jordan UK
Jordans Shoes
Jordan
Nike
Yeezy
Jordan 4
Nike Outlet
YEEZY UK
Adidas Yeezy
Yeezy uk
Jordan 4
Yeezys Supply
Yeezy
YEEZY
Ray Bans Sunglasses
Adidas
NFL Shop
Yeezys
Adidas Yeezys
Yeezy 350 V2
Yeezys
Yeezy Boost 350
Yeezys Shoes
Yeezy
Ray Bans
Yeezy
Yeezys
Adidas Yeezy Slides
Yeezy
Yeezy
Cheap Yeezys
Yeezy Supply
Yeezy Shoes
Yeezy Supply
Yeezys
Yeezy Shoes
Yeezy
Yeezy
Pandora Jewelry
Tags: yeezy shoes, Yeezy Supply, Yeezys, Adidas Yeezy