일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- redis
- db
- jsp
- tool
- springboot
- javascript
- AWS
- JVM
- MySQL
- Spring Boot
- Design Patterns
- Spring
- 맛집
- it
- Web Server
- Oracle
- Gradle
- java
- devops
- jenkins
- elasticsearch
- ReactJS
- Git
- ubuntu
- php
- 요리
- IntelliJ
- Spring Batch
- laravel
- linux
Archives
- Today
- Total
아무거나
스프링부트에서 swagger사용시 크로스 도메인 이슈 본문
반응형
Client(=User) -> Web Server -> API Server 로 구성되어 있는 하나의 시스템에서 서버 설정에 따라 크로스 도메인 이슈가 발생하곤 한다. 그래서 java 소스상에 @Configuration을 선언하고 WebMvcConfigurerAdapter를 상속받아 오버라이딩하여 메소드를 작성하면 해당 이슈는 해결된다.
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
만약 swagger를 이용한다면 아래와 같이 addResourceHandlers 메소드를 오라이드하여 작동하지 않으면 404 not found가 표시 될 것이다. 해당 이슈는 WebMvcConfigurerAdapter를 상속받는 클래스에 addResourceHandlers를 오버라이드하여 작동시키면 된다.
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
반응형
'Java & Kotlin > Java' 카테고리의 다른 글
Java split 함수 사용시 "|"(=vertical bar) 기준으로 제대로 분리되지 않을 때 (0) | 2019.01.07 |
---|---|
문자열을 Hex(=16진수)로 변환하는 방법 (String To Hex) (0) | 2019.01.07 |
IntelliJ프로젝트에 JAR 라이브러리 추가하기 (0) | 2019.01.07 |
이미지 리사이징 (0) | 2018.10.19 |
java 설치 (0) | 2018.06.03 |
Comments