programing

임베디드 서버의 스프링 부트 구성 커스텀 jsessionid

lastmoon 2023. 2. 26. 10:27
반응형

임베디드 서버의 스프링 부트 구성 커스텀 jsessionid

커스텀 jsessionId 키 설정 등 서블릿 컨텍스트를 설정하고 싶다(쿠키 JSESSIONID 이름 변경 참조).

이 기능을 사용할 수 있습니다.SpringBootServletInitializerWAR 파일 실행 시, 조작servletContextonStartup()단, 임베디드 어플리케이션서버에서 실행할 경우new SpringApplicationBuilder().run()servlet 콘텍스트를 조작하기 위한 최적의 장소를 모릅니다.

Spring Boot 1.3에서는 설정 속성을 간단하게 설정할 수 있습니다.

스프링 부트 1.3, 1.4, 1.5

server.session.cookie.name = MYSESSIONID

스프링 부트 2.x

server.servlet.session.cookie.name = MYSESSIONID

컨피규레이션클래스를 쓰는 것보다 훨씬 간단합니다.

세션 관련 속성에 대한 자세한 내용은 https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html 를 참조하십시오.

선언하다ServletContextInitializerbean을 어플리케이션 구성으로 설정합니다.

@Bean
public ServletContextInitializer servletContextInitializer() {
    return new ServletContextInitializer() {

        @Override
        public void onStartup(ServletContext servletContext) throws ServletException {
            servletContext.getSessionCookieConfig().setName("yourCookieName");
        }
    };

}

또는 응용 프로그램클래스 자체를 구현할 수도 있습니다.ServletContextInitializer:

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application implements ServletContextInitializer {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        servletContext.getSessionCookieConfig().setName("yourCookieName");
    }

}

spring session을 사용하면 쿠키 이름을 변경할 수 있습니다.

@Bean
public DefaultCookieSerializer defaultCookieSerializer(){
    DefaultCookieSerializer defaultCookieSerializer = new DefaultCookieSerializer();
    defaultCookieSerializer.setCookieName("mySessionId");
    return defaultCookieSerializer;
}

나는 이것을 봄 세션 소스에서 발견한다.

spring-1.2.1.RELEASE-sources.jar!/org/springframework/session/config/notation/web/http/SpringHttp Session 설정.자바

    @Autowired(required = false)
public void setCookieSerializer(CookieSerializer cookieSerializer) {
    this.defaultHttpSessionStrategy.setCookieSerializer(cookieSerializer);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
    http
    .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER).and()
    .csrf().disable();  
}

URL에서 jsession ID를 제거하므로 시도할 수 있습니다.

언급URL : https://stackoverflow.com/questions/25918556/spring-boot-configure-custom-jsessionid-for-embedded-server

반응형