WebMvcConfig.java 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.its.op.security;
  2. import com.its.op.security.interceptor.ApiInterceptor;
  3. import com.its.op.security.interceptor.LoggerInterceptor;
  4. import com.its.op.security.interceptor.SessionTimerInterceptor;
  5. import com.its.op.security.interceptor.UserInterceptor;
  6. import lombok.AllArgsConstructor;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.web.servlet.config.annotation.CorsRegistry;
  9. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  10. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  11. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  12. @AllArgsConstructor
  13. @Configuration
  14. public class WebMvcConfig implements WebMvcConfigurer {
  15. public static final String USER_UUID = "UUID";
  16. public static final String USER_TIME = "TIME";
  17. /**
  18. * Controller Handler 인터셉서 등록
  19. * @param registry
  20. */
  21. @Override
  22. public void addInterceptors(InterceptorRegistry registry) {
  23. registry.addInterceptor(new SessionTimerInterceptor());
  24. registry.addInterceptor(new LoggerInterceptor());
  25. registry.addInterceptor(new UserInterceptor());
  26. registry.addInterceptor(new ApiInterceptor())
  27. .addPathPatterns("/api/**") // API Controller interceptors
  28. .excludePathPatterns("/facility/**", "/wall/**") // 해당 경로는 인터셉터가 가로채지 않는다.
  29. ;
  30. }
  31. @Override
  32. public void addCorsMappings(CorsRegistry registry) {
  33. registry.addMapping("/**")
  34. //.allowCredentials(true)
  35. //.allowedOriginPatterns("*")
  36. .allowedOrigins("*") // 허용할 Origin(요청 url) : "*" 의 경우 모두 허용
  37. .allowedMethods("GET", "POST", "PUT", "DELETE") // 허용할 request http METHOD : POST, GET, DELETE, PUT
  38. .maxAge(3600) // 브라우저 캐시 시간(단위: 초) : "3600" 이면 최소 1시간 안에는 서버로 재요청 되지 않음
  39. ;
  40. }
  41. // @Override
  42. // public void addViewControllers(ViewControllerRegistry registry) {
  43. // //registry.addRedirectViewController("/", "/api/auth/login.do");
  44. // }
  45. @Override
  46. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  47. // registry.addResourceHandler("swagger-ui.html")
  48. // .addResourceLocations("classpath:/META-INF/resources/");
  49. // registry.addResourceHandler("/webjars/**")
  50. // .addResourceLocations("classpath:/META-INF/resources/webjars/");
  51. String separator = System.getProperty("file.separator");
  52. String mapDataDir = System.getProperty("user.dir")+separator+"MAPDATA/";
  53. String downloadDir = System.getProperty("user.dir")+separator+"download/";
  54. registry.addResourceHandler("/MAPDATA/**")
  55. .addResourceLocations("file:///" + mapDataDir)
  56. //.setCachePeriod(60) // seconds
  57. ;
  58. registry.addResourceHandler("/download/**")
  59. .addResourceLocations("file:///" + downloadDir)
  60. //.setCachePeriod(60) // seconds
  61. ;
  62. }
  63. public static String encUserId(String userId) {
  64. return userId;
  65. }
  66. public static String decUserId(Object encUserId) {
  67. String decUserId = (String)encUserId;
  68. return decUserId;
  69. }
  70. }