[SPRING] web.xml을 사용하지 않고 추적 모드를 쿠키로 설정하여 추가 된 세션 ID를 제거합니다.
SPRINGweb.xml을 사용하지 않고 추적 모드를 쿠키로 설정하여 추가 된 세션 ID를 제거합니다.
나는 아무 XML 구성없이 완전히 자바 기반 스프링 애플 리케이션을 설정하고있다 :
public class WebApp extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebMvcConfigurer.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
과
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { mypackages })
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/static-assets/");
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
내 web.xml에 있던이 자료는 어디에 두어야하나요?
<session-config>
<!-- Disables URL-based sessions (no more 'jsessionid' in the URL using Tomcat) -->
<tracking-mode>COOKIE</tracking-mode>
</session-config>
해결법
-
==============================
1.당신은 아래와 같이 할 수 있습니다.
당신은 아래와 같이 할 수 있습니다.
public class WebConfig implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { HashSet<SessionTrackingMode> set = new HashSet<SessionTrackingMode>(); set.add(SessionTrackingMode.COOKIE); servletContext.setSessionTrackingModes(set); } }
-
==============================
2.3.2.0.RC1부터 AbstractSecurityWebApplicationInitializer에서 다음과 같이 사용할 수 있습니다.
3.2.0.RC1부터 AbstractSecurityWebApplicationInitializer에서 다음과 같이 사용할 수 있습니다.
public class WebSecutityInit extends AbstractSecurityWebApplicationInitializer { @Override protected Set<SessionTrackingMode> getSessionTrackingModes() { return EnumSet.of(SessionTrackingMode.SSL); } }
-
==============================
3.Spring Boot 응용 프로그램에서는 server.session.tracking-modes 응용 프로그램 속성을 사용하여 모드를 구성 할 수 있습니다.
Spring Boot 응용 프로그램에서는 server.session.tracking-modes 응용 프로그램 속성을 사용하여 모드를 구성 할 수 있습니다.
application.properties 파일에 다음을 추가하십시오.
server.session.tracking-modes=cookie
또는 application.yml을 사용하는 경우 :
server: session: tracking-modes: 'cookie'
스프링 부트 자동 설정은 Bassem이 그의 대답에서 추천 한 servletContext.setSessionTrackingModes와 동일한 호출을 내부적으로 사용합니다.
-
==============================
4.나에게 맞는 또 다른 솔루션은 SecurityConfig 클래스 내부의 코드입니다.
나에게 맞는 또 다른 솔루션은 SecurityConfig 클래스 내부의 코드입니다.
@Override protected void configure(HttpSecurity http) throws Exception { http.httpBasic() .and() .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS) //No sessionId eppended ... }
from https://stackoverflow.com/questions/16262285/set-tracking-mode-to-cookie-to-remove-appended-session-id-without-using-web-xml by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] AmazonS3 연결 관리 (0) | 2019.07.13 |
---|---|
[SPRING] 스프링 배치 단계 범위 작업 방법 (0) | 2019.07.13 |
[SPRING] 정적 MVC에서 자동로드 저장소 NullPointerException (0) | 2019.07.13 |
[SPRING] Spring bean은 동시성을 어떻게 처리하나요? (0) | 2019.07.13 |
[SPRING] Spring의 Json 응답 시간대 문제 (0) | 2019.07.13 |