99 lines
5.5 KiB
Java
99 lines
5.5 KiB
Java
package com.eactive.httpmockserver.config;
|
|
|
|
import com.eactive.httpmockserver.common.interceptor.AuthenticInterceptor;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.core.Ordered;
|
|
import org.springframework.data.domain.PageRequest;
|
|
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
|
|
import org.springframework.http.CacheControl;
|
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
|
import org.springframework.web.servlet.config.annotation.*;
|
|
import org.springframework.web.servlet.resource.PathResourceResolver;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
@Configuration
|
|
@EnableWebMvc
|
|
public class WebMvcConfig implements WebMvcConfigurer {
|
|
|
|
|
|
@Override
|
|
public void addViewControllers(ViewControllerRegistry registry) {
|
|
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
|
|
WebMvcConfigurer.super.addViewControllers(registry);
|
|
}
|
|
|
|
private List<String> listAdminAuthPattern() {
|
|
List<String> patterns = new ArrayList<>();
|
|
patterns.add("/mgmt/users/*.do");
|
|
patterns.add("/mgmt/servers/*.do");
|
|
return patterns;
|
|
}
|
|
|
|
@Bean
|
|
public AuthenticInterceptor authenticInterceptor() {
|
|
AuthenticInterceptor authenticInterceptor = new AuthenticInterceptor();
|
|
authenticInterceptor.setAdminAuthPatternList(listAdminAuthPattern());
|
|
return authenticInterceptor;
|
|
}
|
|
|
|
@Override
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
|
|
resolvers.add(pageableHandlerMethodArgumentResolver());
|
|
}
|
|
|
|
@Bean
|
|
public PageableHandlerMethodArgumentResolver pageableHandlerMethodArgumentResolver() {
|
|
PageableHandlerMethodArgumentResolver pageableHandlerMethodArgumentResolver = new PageableHandlerMethodArgumentResolver();
|
|
pageableHandlerMethodArgumentResolver.setOneIndexedParameters(true); //1부터 시작
|
|
pageableHandlerMethodArgumentResolver.setFallbackPageable(PageRequest.of(0, 10)); //파라미터 없을 때 기본 페이지
|
|
return pageableHandlerMethodArgumentResolver;
|
|
}
|
|
|
|
@Override
|
|
public void addInterceptors(InterceptorRegistry registry) {
|
|
registry.addInterceptor(authenticInterceptor())
|
|
.addPathPatterns(
|
|
"/",
|
|
"/mgmt/**/*.do")
|
|
.excludePathPatterns(
|
|
"/h2-console/**",
|
|
"/css/**",
|
|
"/html/**",
|
|
"/images/**",
|
|
"/img/**",
|
|
"/js/**",
|
|
"/login",
|
|
"/intro.do",
|
|
"/join.do",
|
|
"/user_register.do",
|
|
"/actionLogin.do",
|
|
"/check_id.do",
|
|
"/search_id.do",
|
|
"/admin_register_view.do",
|
|
"/admin_register.do",
|
|
"/request_register_auth.do",
|
|
"/reset_password.do",
|
|
"/forgot_password.do"
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
|
|
registry.addResourceHandler("/css/**").addResourceLocations("/css/", "classpath:/static/css/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/fonts/**").addResourceLocations("/fonts/", "classpath:/static/fonts/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/font/**").addResourceLocations("/font/", "classpath:/static/fonts/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/html/**").addResourceLocations("/html/", "classpath:/static/html/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/images/**").addResourceLocations("/images/", "classpath:/static/images/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/img/**").addResourceLocations("/img/", "classpath:/static/img/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/js/**").addResourceLocations("/js/", "classpath:/static/js/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/", "classpath:/static/plugins/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/min-maps/**").addResourceLocations("/min-maps/", "classpath:/static/plugins/").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
registry.addResourceHandler("/favicon.ico").addResourceLocations("/favicon.ico", "classpath:/static/favicon.ico").setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS)).resourceChain(true).addResolver(new PathResourceResolver());
|
|
}
|
|
}
|