Browse Source

Adds AddRequestParameter

pull/41/head
Spencer Gibb 8 years ago
parent
commit
cdb97f6446
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 22
      src/main/java/org/springframework/cloud/gateway/filter/route/SetStatusRouteFilter.java

22
src/main/java/org/springframework/cloud/gateway/filter/route/SetStatusRouteFilter.java

@ -1,11 +1,11 @@ @@ -1,11 +1,11 @@
package org.springframework.cloud.gateway.filter.route;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
import org.springframework.http.HttpStatus;
import org.springframework.web.server.WebFilter;
import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.isResponseCommitted;
import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.setResponseStatus;
import reactor.core.publisher.Mono;
@ -13,21 +13,10 @@ import reactor.core.publisher.Mono; @@ -13,21 +13,10 @@ import reactor.core.publisher.Mono;
* @author Spencer Gibb
*/
public class SetStatusRouteFilter implements RouteFilter {
protected final Log logger = LogFactory.getLog(getClass());
@Override
public WebFilter apply(String statusString, String[] args) {
HttpStatus httpStatus;
try {
int status = Integer.parseInt(statusString);
httpStatus = HttpStatus.valueOf(status);
} catch (NumberFormatException e) {
// try the enum string
httpStatus = HttpStatus.valueOf(statusString.toUpperCase());
}
final HttpStatus finalStatus = httpStatus;
final HttpStatus httpStatus = ServerWebExchangeUtils.parse(statusString);
//TODO: caching can happen here
return (exchange, chain) -> {
@ -43,10 +32,7 @@ public class SetStatusRouteFilter implements RouteFilter { @@ -43,10 +32,7 @@ public class SetStatusRouteFilter implements RouteFilter {
return chain.filter(exchange).then(() -> {
// check not really needed, since it is guarded in setStatusCode, but it's a good example
if (!isResponseCommitted(exchange)) {
boolean response = exchange.getResponse().setStatusCode(finalStatus);
if (!response && logger.isWarnEnabled()) {
logger.warn("Unable to set status code to "+ finalStatus + ". Response already committed.");
}
setResponseStatus(exchange, httpStatus);
}
return Mono.empty();
});

Loading…
Cancel
Save