Example usage for org.springframework.http.server ServerHttpResponse setStatusCode

List of usage examples for org.springframework.http.server ServerHttpResponse setStatusCode

Introduction

In this page you can find the example usage for org.springframework.http.server ServerHttpResponse setStatusCode.

Prototype

void setStatusCode(HttpStatus status);

Source Link

Document

Set the HTTP status code of the response.

Usage

From source file:org.springframework.web.socket.sockjs.support.AbstractSockJsService.java

protected boolean checkOrigin(ServerHttpRequest request, ServerHttpResponse response, HttpMethod... httpMethods)
        throws IOException {

    if (WebUtils.isSameOrigin(request)) {
        return true;
    }//w  ww .j  ava2 s.c  o m

    if (!WebUtils.isValidOrigin(request, this.allowedOrigins)) {
        if (logger.isWarnEnabled()) {
            logger.warn("Origin header value '" + request.getHeaders().getOrigin() + "' not allowed.");
        }
        response.setStatusCode(HttpStatus.FORBIDDEN);
        return false;
    }

    return true;
}

From source file:org.springframework.web.socket.sockjs.support.AbstractSockJsService.java

protected void sendMethodNotAllowed(ServerHttpResponse response, HttpMethod... httpMethods) {
    logger.warn("Sending Method Not Allowed (405)");
    response.setStatusCode(HttpStatus.METHOD_NOT_ALLOWED);
    response.getHeaders().setAllow(new HashSet<>(Arrays.asList(httpMethods)));
}

From source file:org.springframework.web.socket.sockjs.transport.AbstractHttpReceivingTransportHandler.java

@Override
public final void handleRequest(ServerHttpRequest request, ServerHttpResponse response,
        WebSocketHandler webSocketHandler, AbstractSockJsSession session) throws TransportErrorException {

    if (session == null) {
        response.setStatusCode(HttpStatus.NOT_FOUND);
        logger.warn("Session not found");
        return;// w w w  .j av a  2  s .c o  m
    }

    handleRequestInternal(request, response, session);
}

From source file:org.springframework.web.socket.sockjs.transport.AbstractHttpReceivingTransportHandler.java

protected void handleRequestInternal(ServerHttpRequest request, ServerHttpResponse response,
        AbstractSockJsSession session) throws TransportErrorException {

    String[] messages = null;/*from  w ww  .jav a 2 s.c  o  m*/
    try {
        messages = readMessages(request);
    } catch (JsonMappingException ex) {
        logger.error("Failed to read message: " + ex.getMessage());
        sendInternalServerError(response, "Payload expected.", session.getId());
        return;
    } catch (IOException ex) {
        logger.error("Failed to read message: " + ex.getMessage());
        sendInternalServerError(response, "Broken JSON encoding.", session.getId());
        return;
    } catch (Throwable t) {
        logger.error("Failed to read message: " + t.getMessage());
        sendInternalServerError(response, "Failed to process messages", session.getId());
        return;
    }

    if (messages == null) {
        sendInternalServerError(response, "Payload expected.", session.getId());
        return;
    }

    if (logger.isTraceEnabled()) {
        logger.trace("Received message(s): " + Arrays.asList(messages));
    }

    response.setStatusCode(getResponseStatus());
    response.getHeaders().setContentType(new MediaType("text", "plain", Charset.forName("UTF-8")));

    try {
        session.delegateMessages(messages);
    } catch (Throwable t) {
        ExceptionWebSocketHandlerDecorator.tryCloseWithError(session, t, logger);
        throw new TransportErrorException("Unhandled WebSocketHandler error in " + this, t, session.getId());
    }
}

From source file:org.springframework.web.socket.sockjs.transport.AbstractHttpReceivingTransportHandler.java

protected void sendInternalServerError(ServerHttpResponse response, String error, String sessionId)
        throws TransportErrorException {

    try {//from   w  ww  . j a  va2s  .  c  o  m
        response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR);
        response.getBody().write(error.getBytes("UTF-8"));
    } catch (Throwable t) {
        throw new TransportErrorException("Failed to send error message to client", t, sessionId);
    }
}

From source file:org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService.java

@Override
protected void handleRawWebSocketRequest(ServerHttpRequest request, ServerHttpResponse response,
        WebSocketHandler handler) throws IOException {

    TransportHandler transportHandler = this.handlers.get(TransportType.WEBSOCKET);
    if (!(transportHandler instanceof HandshakeHandler)) {
        logger.error("No handler configured for raw WebSocket messages");
        response.setStatusCode(HttpStatus.NOT_FOUND);
        return;/*  w  ww .j a  v  a 2  s .  c o m*/
    }

    HandshakeInterceptorChain chain = new HandshakeInterceptorChain(this.interceptors, handler);
    HandshakeFailureException failure = null;

    try {
        Map<String, Object> attributes = new HashMap<String, Object>();
        if (!chain.applyBeforeHandshake(request, response, attributes)) {
            return;
        }
        ((HandshakeHandler) transportHandler).doHandshake(request, response, handler, attributes);
        chain.applyAfterHandshake(request, response, null);
    } catch (HandshakeFailureException ex) {
        failure = ex;
    } catch (Throwable ex) {
        failure = new HandshakeFailureException("Uncaught failure for request " + request.getURI(), ex);
    } finally {
        if (failure != null) {
            chain.applyAfterHandshake(request, response, failure);
            throw failure;
        }
    }
}

From source file:org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService.java

@Override
protected void handleTransportRequest(ServerHttpRequest request, ServerHttpResponse response,
        WebSocketHandler handler, String sessionId, String transport) throws SockJsException {

    TransportType transportType = TransportType.fromValue(transport);
    if (transportType == null) {
        logger.error("Unknown transport type for " + request.getURI());
        response.setStatusCode(HttpStatus.NOT_FOUND);
        return;//from w ww .  ja  v a  2s.c o m
    }

    TransportHandler transportHandler = this.handlers.get(transportType);
    if (transportHandler == null) {
        logger.error("No TransportHandler for " + request.getURI());
        response.setStatusCode(HttpStatus.NOT_FOUND);
        return;
    }

    HttpMethod supportedMethod = transportType.getHttpMethod();
    if (!supportedMethod.equals(request.getMethod())) {
        if (HttpMethod.OPTIONS.equals(request.getMethod()) && transportType.supportsCors()) {
            response.setStatusCode(HttpStatus.NO_CONTENT);
            addCorsHeaders(request, response, HttpMethod.OPTIONS, supportedMethod);
            addCacheHeaders(response);
        } else if (transportType.supportsCors()) {
            sendMethodNotAllowed(response, supportedMethod, HttpMethod.OPTIONS);
        } else {
            sendMethodNotAllowed(response, supportedMethod);
        }
        return;
    }

    HandshakeInterceptorChain chain = new HandshakeInterceptorChain(this.interceptors, handler);
    SockJsException failure = null;

    try {
        SockJsSession session = this.sessions.get(sessionId);
        if (session == null) {
            if (transportHandler instanceof SockJsSessionFactory) {
                Map<String, Object> attributes = new HashMap<String, Object>();
                if (!chain.applyBeforeHandshake(request, response, attributes)) {
                    return;
                }
                SockJsSessionFactory sessionFactory = (SockJsSessionFactory) transportHandler;
                session = createSockJsSession(sessionId, sessionFactory, handler, attributes);
            } else {
                response.setStatusCode(HttpStatus.NOT_FOUND);
                if (logger.isDebugEnabled()) {
                    logger.debug(
                            "Session not found, sessionId=" + sessionId + ". The session may have been closed "
                                    + "(e.g. missed heart-beat) while a message was coming in.");
                }
                return;
            }
        }

        if (transportType.sendsNoCacheInstruction()) {
            addNoCacheHeaders(response);
        }

        if (transportType.supportsCors()) {
            addCorsHeaders(request, response);
        }

        transportHandler.handleRequest(request, response, handler, session);
        chain.applyAfterHandshake(request, response, null);
    } catch (SockJsException ex) {
        failure = ex;
    } catch (Throwable ex) {
        failure = new SockJsException("Uncaught failure for request " + request.getURI(), sessionId, ex);
    } finally {
        if (failure != null) {
            chain.applyAfterHandshake(request, response, failure);
            throw failure;
        }
    }
}