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, "/*");
|
}
|
}
|