Example usage for org.springframework.http.server.reactive ServerHttpRequest getMethod

List of usage examples for org.springframework.http.server.reactive ServerHttpRequest getMethod

Introduction

In this page you can find the example usage for org.springframework.http.server.reactive ServerHttpRequest getMethod.

Prototype

@Nullable
default HttpMethod getMethod() 

Source Link

Document

Return the HTTP method of the request.

Usage

From source file:org.springframework.http.server.reactive.ReactorHttpHandlerAdapter.java

@Override
public Mono<Void> apply(HttpServerRequest request, HttpServerResponse response) {

    NettyDataBufferFactory bufferFactory = new NettyDataBufferFactory(response.alloc());
    ServerHttpRequest adaptedRequest;
    ServerHttpResponse adaptedResponse;/* www .j  a v  a  2  s  . c om*/
    try {
        adaptedRequest = new ReactorServerHttpRequest(request, bufferFactory);
        adaptedResponse = new ReactorServerHttpResponse(response, bufferFactory);
    } catch (URISyntaxException ex) {
        logger.error("Invalid URL " + ex.getMessage(), ex);
        response.status(HttpResponseStatus.BAD_REQUEST);
        return Mono.empty();
    }

    if (HttpMethod.HEAD.equals(adaptedRequest.getMethod())) {
        adaptedResponse = new HttpHeadResponseDecorator(adaptedResponse);
    }

    return this.httpHandler.handle(adaptedRequest, adaptedResponse)
            .doOnError(ex -> logger.error("Handling completed with error", ex))
            .doOnSuccess(aVoid -> logger.debug("Handling completed with success"));
}

From source file:org.springframework.http.server.reactive.ServletHttpHandlerAdapter.java

@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
    if (DispatcherType.ASYNC.equals(request.getDispatcherType())) {
        Throwable ex = (Throwable) request.getAttribute(WRITE_ERROR_ATTRIBUTE_NAME);
        throw new ServletException("Write publisher error", ex);
    }//from w  w  w  .j  a v  a  2 s.  c o  m

    // Start async before Read/WriteListener registration
    AsyncContext asyncContext = request.startAsync();
    asyncContext.setTimeout(-1);

    ServerHttpRequest httpRequest = createRequest(((HttpServletRequest) request), asyncContext);
    ServerHttpResponse httpResponse = createResponse(((HttpServletResponse) response), asyncContext);

    if (HttpMethod.HEAD.equals(httpRequest.getMethod())) {
        httpResponse = new HttpHeadResponseDecorator(httpResponse);
    }

    AtomicBoolean isCompleted = new AtomicBoolean();
    HandlerResultAsyncListener listener = new HandlerResultAsyncListener(isCompleted);
    asyncContext.addListener(listener);

    HandlerResultSubscriber subscriber = new HandlerResultSubscriber(asyncContext, isCompleted);
    this.httpHandler.handle(httpRequest, httpResponse).subscribe(subscriber);
}

From source file:org.springframework.http.server.reactive.UndertowHttpHandlerAdapter.java

@Override
public void handleRequest(HttpServerExchange exchange) throws Exception {

    ServerHttpRequest request = new UndertowServerHttpRequest(exchange, getDataBufferFactory());
    ServerHttpResponse response = new UndertowServerHttpResponse(exchange, getDataBufferFactory());

    if (HttpMethod.HEAD.equals(request.getMethod())) {
        response = new HttpHeadResponseDecorator(response);
    }//from  ww  w .ja v a 2s. c  o  m

    HandlerResultSubscriber resultSubscriber = new HandlerResultSubscriber(exchange);
    this.httpHandler.handle(request, response).subscribe(resultSubscriber);
}

From source file:org.springframework.test.web.reactive.server.HttpHandlerConnector.java

private ServerHttpResponse prepareResponse(ServerHttpResponse response, ServerHttpRequest request) {
    return HttpMethod.HEAD.equals(request.getMethod()) ? new HttpHeadResponseDecorator(response) : response;
}

From source file:org.springframework.web.cors.reactive.DefaultCorsProcessor.java

@Nullable
private HttpMethod getMethodToUse(ServerHttpRequest request, boolean isPreFlight) {
    return (isPreFlight ? request.getHeaders().getAccessControlRequestMethod() : request.getMethod());
}

From source file:org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService.java

@Override
public Mono<Void> handleRequest(ServerWebExchange exchange, WebSocketHandler handler) {
    ServerHttpRequest request = exchange.getRequest();
    HttpMethod method = request.getMethod();
    HttpHeaders headers = request.getHeaders();

    if (logger.isDebugEnabled()) {
        logger.debug("Handling " + request.getURI() + " with headers: " + headers);
    }/*from  w  ww  .jav a  2 s  .co m*/

    if (HttpMethod.GET != method) {
        return Mono.error(
                new MethodNotAllowedException(request.getMethodValue(), Collections.singleton(HttpMethod.GET)));
    }

    if (!"WebSocket".equalsIgnoreCase(headers.getUpgrade())) {
        return handleBadRequest("Invalid 'Upgrade' header: " + headers);
    }

    List<String> connectionValue = headers.getConnection();
    if (!connectionValue.contains("Upgrade") && !connectionValue.contains("upgrade")) {
        return handleBadRequest("Invalid 'Connection' header: " + headers);
    }

    String key = headers.getFirst(SEC_WEBSOCKET_KEY);
    if (key == null) {
        return handleBadRequest("Missing \"Sec-WebSocket-Key\" header");
    }

    String protocol = selectProtocol(headers, handler);
    return this.upgradeStrategy.upgrade(exchange, handler, protocol);
}

From source file:org.springframework.web.server.adapter.HttpWebHandlerAdapter.java

private Mono<Void> handleFailure(ServerHttpRequest request, ServerHttpResponse response, Throwable ex) {
    if (isDisconnectedClientError(ex)) {
        if (disconnectedClientLogger.isTraceEnabled()) {
            disconnectedClientLogger.trace("Looks like the client has gone away", ex);
        } else if (disconnectedClientLogger.isDebugEnabled()) {
            disconnectedClientLogger.debug("Looks like the client has gone away: " + ex
                    + " (For a full stack trace, set the log category '" + DISCONNECTED_CLIENT_LOG_CATEGORY
                    + "' to TRACE level.)");
        }/*w  w w .  ja v a2  s  .  c  o m*/
        return Mono.empty();
    }
    if (response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR)) {
        logger.error("Failed to handle request [" + request.getMethod() + " " + request.getURI() + "]", ex);
        return Mono.empty();
    }
    // After the response is committed, propagate errors to the server..
    HttpStatus status = response.getStatusCode();
    logger.error("Unhandled failure: " + ex.getMessage() + ", response already set (status=" + status + ")");
    return Mono.error(ex);
}

From source file:org.springframework.web.server.handler.ResponseStatusExceptionHandler.java

private String buildMessage(ServerHttpRequest request, Throwable ex) {
    return "Failed to handle request [" + request.getMethod() + " " + request.getURI() + "]: "
            + ex.getMessage();//w ww . j a v a 2s.  c o  m
}