-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8 from kusitms-28th-Meetup-E/feat/global
fix : cors 설정 변경 및 gateway uri 변경
Showing
6 changed files
with
113 additions
and
106 deletions.
There are no files selected for viewing
90 changes: 45 additions & 45 deletions
90
src/main/java/gwangjang/server/global/config/PassCorsRoutePredicateHandlerMapping.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,45 +1,45 @@ | ||
package gwangjang.server.global.config; | ||
|
||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import org.springframework.cloud.gateway.config.GlobalCorsProperties; | ||
import org.springframework.cloud.gateway.handler.FilteringWebHandler; | ||
import org.springframework.cloud.gateway.handler.RoutePredicateHandlerMapping; | ||
import org.springframework.cloud.gateway.route.RouteLocator; | ||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.context.annotation.Primary; | ||
import org.springframework.core.env.Environment; | ||
import org.springframework.web.server.ServerWebExchange; | ||
import reactor.core.publisher.Mono; | ||
|
||
public class PassCorsRoutePredicateHandlerMapping extends RoutePredicateHandlerMapping { | ||
|
||
private static final Logger logger = LoggerFactory.getLogger(PassCorsRoutePredicateHandlerMapping.class); | ||
|
||
public PassCorsRoutePredicateHandlerMapping(FilteringWebHandler webHandler, RouteLocator routeLocator, | ||
GlobalCorsProperties globalCorsProperties, Environment environment) { | ||
super(webHandler, routeLocator, globalCorsProperties, environment); | ||
} | ||
|
||
@Override | ||
public Mono<Object> getHandler(ServerWebExchange exchange) { | ||
logger.info("[PassCorsRoutePredicateHandlerMapping] getHandler"); | ||
return getHandlerInternal(exchange).map(handler -> { | ||
logger.info(exchange.getLogPrefix() + "Mapped to " + handler); | ||
|
||
// CORS 체크 로직 제거 | ||
|
||
|
||
return handler; | ||
}); | ||
} | ||
|
||
@Bean | ||
@Primary | ||
public RoutePredicateHandlerMapping passCorsRoutePredicateHandlerMapping( | ||
FilteringWebHandler webHandler, RouteLocator routeLocator, | ||
GlobalCorsProperties globalCorsProperties, Environment environment) { | ||
return new PassCorsRoutePredicateHandlerMapping(webHandler, routeLocator, | ||
globalCorsProperties, environment); | ||
} | ||
} | ||
//package gwangjang.server.global.config; | ||
// | ||
//import org.slf4j.Logger; | ||
//import org.slf4j.LoggerFactory; | ||
//import org.springframework.cloud.gateway.config.GlobalCorsProperties; | ||
//import org.springframework.cloud.gateway.handler.FilteringWebHandler; | ||
//import org.springframework.cloud.gateway.handler.RoutePredicateHandlerMapping; | ||
//import org.springframework.cloud.gateway.route.RouteLocator; | ||
//import org.springframework.context.annotation.Bean; | ||
//import org.springframework.context.annotation.Primary; | ||
//import org.springframework.core.env.Environment; | ||
//import org.springframework.web.server.ServerWebExchange; | ||
//import reactor.core.publisher.Mono; | ||
// | ||
//public class PassCorsRoutePredicateHandlerMapping extends RoutePredicateHandlerMapping { | ||
// | ||
// private static final Logger logger = LoggerFactory.getLogger(PassCorsRoutePredicateHandlerMapping.class); | ||
// | ||
// public PassCorsRoutePredicateHandlerMapping(FilteringWebHandler webHandler, RouteLocator routeLocator, | ||
// GlobalCorsProperties globalCorsProperties, Environment environment) { | ||
// super(webHandler, routeLocator, globalCorsProperties, environment); | ||
// } | ||
// | ||
// @Override | ||
// public Mono<Object> getHandler(ServerWebExchange exchange) { | ||
// logger.info("[PassCorsRoutePredicateHandlerMapping] getHandler"); | ||
// return getHandlerInternal(exchange).map(handler -> { | ||
// logger.info(exchange.getLogPrefix() + "Mapped to " + handler); | ||
// | ||
// // CORS 체크 로직 제거 | ||
// | ||
// | ||
// return handler; | ||
// }); | ||
// } | ||
// | ||
// @Bean | ||
// @Primary | ||
// public RoutePredicateHandlerMapping passCorsRoutePredicateHandlerMapping( | ||
// FilteringWebHandler webHandler, RouteLocator routeLocator, | ||
// GlobalCorsProperties globalCorsProperties, Environment environment) { | ||
// return new PassCorsRoutePredicateHandlerMapping(webHandler, routeLocator, | ||
// globalCorsProperties, environment); | ||
// } | ||
//} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
104 changes: 52 additions & 52 deletions
104
src/main/java/gwangjang/server/global/filter/CorsConfiguration.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,52 @@ | ||
package gwangjang.server.global.filter; | ||
|
||
import lombok.extern.slf4j.Slf4j; | ||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.context.annotation.Configuration; | ||
import org.springframework.http.HttpHeaders; | ||
import org.springframework.http.HttpMethod; | ||
import org.springframework.http.HttpStatus; | ||
import org.springframework.http.server.reactive.ServerHttpRequest; | ||
import org.springframework.http.server.reactive.ServerHttpResponse; | ||
import org.springframework.web.cors.reactive.CorsUtils; | ||
import org.springframework.web.server.ServerWebExchange; | ||
import org.springframework.web.server.WebFilter; | ||
import org.springframework.web.server.WebFilterChain; | ||
|
||
import reactor.core.publisher.Mono; | ||
|
||
@Slf4j | ||
|
||
@Configuration | ||
public class CorsConfiguration { | ||
|
||
private static final String ALLOWED_HEADERS = "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN"; | ||
private static final String ALLOWED_METHODS = "GET, PUT, POST, DELETE, OPTIONS"; | ||
private static final String ALLOWED_ORIGIN = "*"; | ||
private static final String MAX_AGE = "3600"; | ||
|
||
@Bean | ||
public WebFilter corsFilter() { | ||
return (ServerWebExchange ctx, WebFilterChain chain) -> { | ||
ServerHttpRequest request = ctx.getRequest(); | ||
if (CorsUtils.isCorsRequest(request) || CorsUtils.isPreFlightRequest(request) ) { | ||
log.info("corsFilter ongoing !"); | ||
ServerHttpResponse response = ctx.getResponse(); | ||
HttpHeaders headers = response.getHeaders(); | ||
headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); | ||
headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); | ||
headers.add("Access-Control-Max-Age", MAX_AGE); | ||
headers.add("Access-Control-Allow-Headers",ALLOWED_HEADERS); | ||
// response.setStatusCode(HttpStatus.OK); | ||
if (request.getMethod() == HttpMethod.OPTIONS ) { | ||
response.setStatusCode(HttpStatus.OK); | ||
return Mono.empty(); | ||
} | ||
log.info(response.getStatusCode().toString()); | ||
|
||
} | ||
return chain.filter(ctx); | ||
}; | ||
} | ||
|
||
} | ||
//package gwangjang.server.global.filter; | ||
// | ||
//import lombok.extern.slf4j.Slf4j; | ||
//import org.springframework.context.annotation.Bean; | ||
//import org.springframework.context.annotation.Configuration; | ||
//import org.springframework.http.HttpHeaders; | ||
//import org.springframework.http.HttpMethod; | ||
//import org.springframework.http.HttpStatus; | ||
//import org.springframework.http.server.reactive.ServerHttpRequest; | ||
//import org.springframework.http.server.reactive.ServerHttpResponse; | ||
//import org.springframework.web.cors.reactive.CorsUtils; | ||
//import org.springframework.web.server.ServerWebExchange; | ||
//import org.springframework.web.server.WebFilter; | ||
//import org.springframework.web.server.WebFilterChain; | ||
// | ||
//import reactor.core.publisher.Mono; | ||
// | ||
//@Slf4j | ||
// | ||
//@Configuration | ||
//public class CorsConfiguration { | ||
// | ||
// private static final String ALLOWED_HEADERS = "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN"; | ||
// private static final String ALLOWED_METHODS = "GET, PUT, POST, DELETE, OPTIONS"; | ||
// private static final String ALLOWED_ORIGIN = "*"; | ||
// private static final String MAX_AGE = "3600"; | ||
// | ||
// @Bean | ||
// public WebFilter corsFilter() { | ||
// return (ServerWebExchange ctx, WebFilterChain chain) -> { | ||
// ServerHttpRequest request = ctx.getRequest(); | ||
// if (CorsUtils.isCorsRequest(request) || CorsUtils.isPreFlightRequest(request) ) { | ||
// log.info("corsFilter ongoing !"); | ||
// ServerHttpResponse response = ctx.getResponse(); | ||
// HttpHeaders headers = response.getHeaders(); | ||
// headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); | ||
// headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); | ||
// headers.add("Access-Control-Max-Age", MAX_AGE); | ||
// headers.add("Access-Control-Allow-Headers",ALLOWED_HEADERS); | ||
//// response.setStatusCode(HttpStatus.OK); | ||
// if (request.getMethod() == HttpMethod.OPTIONS ) { | ||
// response.setStatusCode(HttpStatus.OK); | ||
// return Mono.empty(); | ||
// } | ||
// log.info(response.getStatusCode().toString()); | ||
// | ||
// } | ||
// return chain.filter(ctx); | ||
// }; | ||
// } | ||
// | ||
//} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters