List of usage examples for org.springframework.http.server ServerHttpResponse setStatusCode
void setStatusCode(HttpStatus status);
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; } } }