본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework/Spring boot

remove Springboot jsessionid , 스프링부트 jsession 제거

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 12. 3.

jseesion이란?

jseesion은 새 세션이 만들어지면 클라이언트가 쿠키를 지원하는지 여부를 서버가 알 수 없으므로 쿠키와 URL에 모두 jsessionid를 만들어 주는 것을 의미하며 url에 붙어서 보이거나 헤더에 붙어서 나온다.

클라이언트가 두 번째 요청부터 세션 쿠키를 보내오면 URL에 jsessionid를 붙이지 않고, 쿠키가 없으면 계속 URL에 jsessionid 를 붙이게 된다.

뭐..나름 괜찮은 기능 아닌가?

 

그런데 스프링 부트를 사용하다 jsessionid가 나타나 프로젝트를 납품하다 지적(?)받는 경우가 있었다.

보안에 문제가 있다고하는데 이게 왜 보안에 심대한 문제가 있는지는 잘 모르겠다.

 

ServletContextInitializer 클래스를 Bean객체로 등록하여 스프링 부트가 jseesion과 관련된 설정을 읽도록 해 주면 끝이난다.

설정(Configuration) 역할을 담당하는 클래스에 아래 메소드를 추가하여 주자.

import java.util.Collections;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.SessionCookieConfig;
import javax.servlet.SessionTrackingMode;

import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class Configurations implements WebMvcConfigurer {

    //j-session 삭제
    @Bean
    public ServletContextInitializer clearJsession() {
        return new ServletContextInitializer() {
            @Override
            public void onStartup(ServletContext servletContext) throws ServletException {
               servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE));
               SessionCookieConfig sessionCookieConfig=servletContext.getSessionCookieConfig();
               sessionCookieConfig.setHttpOnly(true);
            }
        };
    }
}

startup이라는 메소드의 첫번째 줄이 핵심적인 내용이다.

traking mode 라고 하는 부분의 세팅을 통해서 jsession이 더 이상 나오지 않도록 하여준다.

끝!

 

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글