List of usage examples for org.springframework.http.server.reactive ServerHttpRequest getMethod
@Nullable
default HttpMethod getMethod()
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 }