package kr.wisestone.owl.initializer; import org.springframework.security.web.session.HttpSessionEventPublisher; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.filter.DelegatingFilterProxy; import org.springframework.web.servlet.DispatcherServlet; import javax.servlet.*; import java.util.EnumSet; /** * Created by jeong on 2017-08-01. */ public class AppInitializer implements WebApplicationInitializer { private static final String CONFIG_LOCATION = "kr.wisestone.owl.config"; private static final String MAPPING_URL = "/*"; @Override public void onStartup(ServletContext servletContext) { this.registerDispatcherServlet(servletContext); this.registerCharacterEncodingFilter(servletContext); this.registerSpringSecurityFilter(servletContext); } private void registerDispatcherServlet(ServletContext servletContext) { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.setConfigLocation(CONFIG_LOCATION); servletContext.addListener(new ContextLoaderListener(context)); servletContext.addListener(new HttpSessionEventPublisher()); ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping(MAPPING_URL); context.registerShutdownHook(); } private void registerCharacterEncodingFilter(ServletContext servletContext) { FilterRegistration.Dynamic characterEncodingFilter = servletContext.addFilter("characterEncodingFilter", new CharacterEncodingFilter()); characterEncodingFilter.setInitParameter("encoding", "UTF-8"); characterEncodingFilter.setInitParameter("forceEncoding", "true"); characterEncodingFilter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); } private void registerSpringSecurityFilter(ServletContext servletContext) { FilterRegistration.Dynamic springSecurityFilter = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy()); springSecurityFilter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); } }