Java 类org.springframework.http.server.ServerHttpResponse 实例源码

项目:GitHub    文件:JSONPResponseBodyAdvice.java   
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
                              Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,
                              ServerHttpResponse response) {

    ResponseJSONP responseJsonp = returnType.getMethodAnnotation(ResponseJSONP.class);
    if(responseJsonp == null){
        responseJsonp = returnType.getContainingClass().getAnnotation(ResponseJSONP.class);
    }

    HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest();
    String callbackMethodName = servletRequest.getParameter(responseJsonp.callback());

    if (!IOUtils.isValidJsonpQueryParam(callbackMethodName)) {
        if (logger.isDebugEnabled()) {
            logger.debug("Invalid jsonp parameter value:" + callbackMethodName);
        }
        callbackMethodName = null;
    }

    JSONPObject jsonpObject = new JSONPObject(callbackMethodName);
    jsonpObject.addParameter(body);
    beforeBodyWriteInternal(jsonpObject, selectedContentType, returnType, request, response);
    return jsonpObject;
}
项目:GitHub    文件:FastJsonpResponseBodyAdvice.java   
/**
 * Invoked only if the converter type is {@code FastJsonpHttpMessageConverter4}.
 */
public void beforeBodyWriteInternal(MappingFastJsonValue bodyContainer, MediaType contentType,
                                    MethodParameter returnType, ServerHttpRequest request, ServerHttpResponse response) {
    HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest();
    for (String name : this.jsonpQueryParamNames) {
        String value = servletRequest.getParameter(name);
        if (value != null) {
            if (!isValidJsonpQueryParam(value)) {
                continue;
            }
            // MediaType contentTypeToUse = getContentType(contentType, request, response);
            // response.getHeaders().setContentType(contentTypeToUse);
            bodyContainer.setJsonpFunction(value);
            break;
        }
    }
}
项目:Instant-Messaging    文件:HandshakeInterceptor.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
    System.out.println("before handshake");
    ServletServerHttpRequest servletRequest = (ServletServerHttpRequest) request;
    HttpSession session = servletRequest.getServletRequest().getSession(false);
    Long uid = (Long)session.getAttribute("uid");
    if(uid == null){
        return false;
    }

    //如果uid==null,afterConnectionEstablished不执行,协议转换不成功,报下面的错误
    //websocket.html?uid=1990:56 WebSocket connection to 'ws://localhost:8080/ws?uid=1990' failed: Error during WebSocket handshake: Unexpected response code: 500
    attributes.put("uid", uid);
    return true;

    // 如果这里返回false,浏览器会报下面这个错误
    // WebSocket connection to 'ws://localhost:8080/ws' failed: Error during WebSocket handshake: Unexpected response code: 200
}
项目:filter    文件:DefFilterDataResponseHandler.java   
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
    Class converterType = returnType.getMethod().getDeclaringClass();
    FilterResponse defaultResponse = returnType.getMethod().getAnnotation(FilterResponse.class);
    if(defaultResponse==null) {
        defaultResponse = (FilterResponse) converterType.getAnnotation(FilterResponse.class);
    }
    String className =converterType.getName();
    logger.debug("beforeBodyWrite - className >" +className +", defaultResponse - > "+defaultResponse);
    if(defaultResponse!=null){
        switch (defaultResponse.type()){
            case defaultFilter:{
                response.getHeaders().add(Constants.defaultResponseHeader,Constants.defaultResponseHeader);
            }
        }
    }
    return body;
}
项目:Sound.je    文件:JsonViewConfiguration.java   
@Override
protected void beforeBodyWriteInternal(final MappingJacksonValue bodyContainer,
                                       final MediaType contentType,
                                       final MethodParameter returnType,
                                       final ServerHttpRequest request,
                                       final ServerHttpResponse response) {
    final Mutable<Class<?>> viewClass = Mutable.of(View.Anonymous.class);

    if (SecurityContextHolder.getContext().getAuthentication() != null && SecurityContextHolder.getContext().getAuthentication().getAuthorities() != null) {
        final Collection<? extends GrantedAuthority> authorities = SecurityContextHolder.getContext().getAuthentication().getAuthorities();

        viewClass.mutateIf(View.User.class, authorities.stream().anyMatch(o -> o.getAuthority().equals("PRIV_USER")));
        viewClass.mutateIf(View.Moderator.class, authorities.stream().anyMatch(o -> o.getAuthority().equals("PRIV_MODERATOR")));
        viewClass.mutateIf(View.Admin.class, authorities.stream().anyMatch(o -> o.getAuthority().equals("PRIV_ADMIN")));
    }

    bodyContainer.setSerializationView(viewClass.get());
}
项目:tokamak    文件:RestExceptionRenderer.java   
public void handleHttpEntityResponse(HttpEntity<?> responseEntity, ServletWebRequest webRequest) throws Exception {
    if (responseEntity == null) {
        return;
    }

    HttpInputMessage inputMessage = createHttpInputMessage(webRequest);
    HttpOutputMessage outputMessage = createHttpOutputMessage(webRequest);
    if (responseEntity instanceof ResponseEntity && outputMessage instanceof ServerHttpResponse) {
        ((ServerHttpResponse) outputMessage).setStatusCode(((ResponseEntity<?>) responseEntity).getStatusCode());
    }

    HttpHeaders entityHeaders = responseEntity.getHeaders();
    if (!entityHeaders.isEmpty()) {
        outputMessage.getHeaders().putAll(entityHeaders);
    }

    Object body = responseEntity.getBody();
    if (body != null) {
        writeWithMessageConverters(body, inputMessage, outputMessage);
    }
    else {
        outputMessage.getBody();
    }
}
项目:k-framework    文件:DefaultResponseBodyHandler.java   
@Override
public BizRes beforeBodyWrite(BizRes body, MethodParameter returnType, MediaType selectedContentType,
                              Class<? extends HttpMessageConverter<?>> selectedConverterType,
                              ServerHttpRequest request, ServerHttpResponse response) {
    String deviceToken = response.getHeaders().getFirst(requestHeaderProperties.getDeviceToken());
    if (body instanceof ErrorRes) {
        ((ErrorRes) body).setVd(deviceToken);
        return body;
    }
    if (body instanceof SuccessRes) {
        ((SuccessRes) body).setVd(deviceToken);
        return body;
    }
    SuccessRes res = new SuccessRes(body);
    res.setVd(deviceToken);
    return res;
}
项目:spring-microservice-versioning    文件:AdapterAdvice.java   
@Override
public Versioned beforeBodyWrite(
        Versioned versioned,
        MethodParameter methodParameter,
        MediaType mediaType,
        Class<? extends HttpMessageConverter<?>> aClass,
        ServerHttpRequest serverHttpRequest,
        ServerHttpResponse serverHttpResponse) {

    String version = serverHttpRequest.getHeaders().getFirst(PROTOCOL_VERSION_HEADER);

    if(version == null) {
        throw new RuntimeException(String.format("Missing '%s' header.", PROTOCOL_VERSION_HEADER));
    }

    return versioned.toVersion(parseInt(version));
}
项目:spring4-understanding    文件:AnnotationMethodHandlerAdapter.java   
private void handleHttpEntityResponse(HttpEntity<?> responseEntity, ServletWebRequest webRequest) throws Exception {
    if (responseEntity == null) {
        return;
    }
    HttpInputMessage inputMessage = createHttpInputMessage(webRequest);
    HttpOutputMessage outputMessage = createHttpOutputMessage(webRequest);
    if (responseEntity instanceof ResponseEntity && outputMessage instanceof ServerHttpResponse) {
        ((ServerHttpResponse) outputMessage).setStatusCode(((ResponseEntity<?>) responseEntity).getStatusCode());
    }
    HttpHeaders entityHeaders = responseEntity.getHeaders();
    if (!entityHeaders.isEmpty()) {
        outputMessage.getHeaders().putAll(entityHeaders);
    }
    Object body = responseEntity.getBody();
    if (body != null) {
        writeWithMessageConverters(body, inputMessage, outputMessage);
    }
    else {
        // flush headers
        outputMessage.getBody();
    }
}
项目:spring4-understanding    文件:AbstractJsonpResponseBodyAdvice.java   
@Override
protected void beforeBodyWriteInternal(MappingJacksonValue bodyContainer, MediaType contentType,
        MethodParameter returnType, ServerHttpRequest request, ServerHttpResponse response) {

    HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest();

    for (String name : this.jsonpQueryParamNames) {
        String value = servletRequest.getParameter(name);
        if (value != null) {
            if (!isValidJsonpQueryParam(value)) {
                if (logger.isDebugEnabled()) {
                    logger.debug("Ignoring invalid jsonp parameter value: " + value);
                }
                continue;
            }
            MediaType contentTypeToUse = getContentType(contentType, request, response);
            response.getHeaders().setContentType(contentTypeToUse);
            bodyContainer.setJsonpFunction(value);
            break;
        }
    }
}
项目:spring-boot-concourse    文件:HttpRestartServer.java   
/**
 * Handle a server request.
 * @param request the request
 * @param response the response
 * @throws IOException in case of I/O errors
 */
public void handle(ServerHttpRequest request, ServerHttpResponse response)
        throws IOException {
    try {
        Assert.state(request.getHeaders().getContentLength() > 0, "No content");
        ObjectInputStream objectInputStream = new ObjectInputStream(
                request.getBody());
        ClassLoaderFiles files = (ClassLoaderFiles) objectInputStream.readObject();
        objectInputStream.close();
        this.server.updateAndRestart(files);
        response.setStatusCode(HttpStatus.OK);
    }
    catch (Exception ex) {
        logger.warn("Unable to handler restart server HTTP request", ex);
        response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
项目:spring-boot-concourse    文件:DispatcherFilterTests.java   
@Test
public void handledByDispatcher() throws Exception {
    HttpServletRequest request = new MockHttpServletRequest("GET", "/hello");
    HttpServletResponse response = new MockHttpServletResponse();
    willReturn(true).given(this.dispatcher).handle(any(ServerHttpRequest.class),
            any(ServerHttpResponse.class));
    this.filter.doFilter(request, response, this.chain);
    verifyZeroInteractions(this.chain);
    verify(this.dispatcher).handle(this.serverRequestCaptor.capture(),
            this.serverResponseCaptor.capture());
    ServerHttpRequest dispatcherRequest = this.serverRequestCaptor.getValue();
    ServletServerHttpRequest actualRequest = (ServletServerHttpRequest) dispatcherRequest;
    ServerHttpResponse dispatcherResponse = this.serverResponseCaptor.getValue();
    ServletServerHttpResponse actualResponse = (ServletServerHttpResponse) dispatcherResponse;
    assertThat(actualRequest.getServletRequest()).isEqualTo(request);
    assertThat(actualResponse.getServletResponse()).isEqualTo(response);
}
项目:spring4-understanding    文件:AbstractStandardUpgradeStrategy.java   
@Override
public void upgrade(ServerHttpRequest request, ServerHttpResponse response,
        String selectedProtocol, List<WebSocketExtension> selectedExtensions, Principal user,
        WebSocketHandler wsHandler, Map<String, Object> attrs) throws HandshakeFailureException {

    HttpHeaders headers = request.getHeaders();
    InetSocketAddress localAddr = request.getLocalAddress();
    InetSocketAddress remoteAddr = request.getRemoteAddress();

    StandardWebSocketSession session = new StandardWebSocketSession(headers, attrs, localAddr, remoteAddr, user);
    StandardWebSocketHandlerAdapter endpoint = new StandardWebSocketHandlerAdapter(wsHandler, session);

    List<Extension> extensions = new ArrayList<Extension>();
    for (WebSocketExtension extension : selectedExtensions) {
        extensions.add(new WebSocketToStandardExtensionAdapter(extension));
    }

    upgradeInternal(request, response, selectedProtocol, extensions, endpoint);
}
项目:spring4-understanding    文件:WebSphereRequestUpgradeStrategy.java   
@Override
public void upgradeInternal(ServerHttpRequest httpRequest, ServerHttpResponse httpResponse,
        String selectedProtocol, List<Extension> selectedExtensions, Endpoint endpoint)
        throws HandshakeFailureException {

    HttpServletRequest request = getHttpServletRequest(httpRequest);
    HttpServletResponse response = getHttpServletResponse(httpResponse);

    StringBuffer requestUrl = request.getRequestURL();
    String path = request.getRequestURI();  // shouldn't matter
    Map<String, String> pathParams = Collections.<String, String> emptyMap();

    ServerEndpointRegistration endpointConfig = new ServerEndpointRegistration(path, endpoint);
    endpointConfig.setSubprotocols(Collections.singletonList(selectedProtocol));
    endpointConfig.setExtensions(selectedExtensions);

    try {
        ServerContainer container = getContainer(request);
        upgradeMethod.invoke(container, request, response, endpointConfig, pathParams);
    }
    catch (Exception ex) {
        throw new HandshakeFailureException(
                "Servlet request failed to upgrade to WebSocket for " + requestUrl, ex);
    }
}
项目:spring4-understanding    文件:HandshakeInterceptorChain.java   
public boolean applyBeforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
        Map<String, Object> attributes) throws Exception {

    for (int i = 0; i < this.interceptors.size(); i++) {
        HandshakeInterceptor interceptor = this.interceptors.get(i);
        if (!interceptor.beforeHandshake(request, response, this.wsHandler, attributes)) {
            if (logger.isDebugEnabled()) {
                logger.debug(interceptor + " returns false from beforeHandshake - precluding handshake");
            }
            applyAfterHandshake(request, response, null);
            return false;
        }
        this.interceptorIndex = i;
    }
    return true;
}
项目:summer    文件:CacheAdvice.java   
@Override
public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
    String etag = serverHttpRequest.getHeaders().getFirst(HttpHeaders.IF_NONE_MATCH);
    if (!((GET.equals(serverHttpRequest.getMethod().name())) || (HEAD.equals(serverHttpRequest.getMethod().name())))) {
        return o;
    }
    String md5;
    if (o instanceof ResponseEntity) {
        ResponseEntity response = (ResponseEntity) o;
        md5 = DigestUtils.md5DigestAsHex(JsonUtils.toJsonString(response.getBody()).getBytes());
    } else {
        md5 = DigestUtils.md5DigestAsHex(JsonUtils.toJsonString(o).getBytes());
    }
    serverHttpResponse.getHeaders().add("Etag", md5);
    if (md5.equalsIgnoreCase(etag)) {
        serverHttpResponse.setStatusCode(HttpStatus.NOT_MODIFIED);
        return null;
    } else {
        return o;
    }
}
项目:spring4-understanding    文件:HttpSessionHandshakeInterceptor.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
        WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {

    HttpSession session = getSession(request);
    if (session != null) {
        if (isCopyHttpSessionId()) {
            attributes.put(HTTP_SESSION_ID_ATTR_NAME, session.getId());
        }
        Enumeration<String> names = session.getAttributeNames();
        while (names.hasMoreElements()) {
            String name = names.nextElement();
            if (isCopyAllAttributes() || getAttributeNames().contains(name)) {
                attributes.put(name, session.getAttribute(name));
            }
        }
    }
    return true;
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:DispatcherFilterTests.java   
@Test
public void handledByDispatcher() throws Exception {
    HttpServletRequest request = new MockHttpServletRequest("GET", "/hello");
    HttpServletResponse response = new MockHttpServletResponse();
    willReturn(true).given(this.dispatcher).handle(any(ServerHttpRequest.class),
            any(ServerHttpResponse.class));
    this.filter.doFilter(request, response, this.chain);
    verifyZeroInteractions(this.chain);
    verify(this.dispatcher).handle(this.serverRequestCaptor.capture(),
            this.serverResponseCaptor.capture());
    ServerHttpRequest dispatcherRequest = this.serverRequestCaptor.getValue();
    ServletServerHttpRequest actualRequest = (ServletServerHttpRequest) dispatcherRequest;
    ServerHttpResponse dispatcherResponse = this.serverResponseCaptor.getValue();
    ServletServerHttpResponse actualResponse = (ServletServerHttpResponse) dispatcherResponse;
    assertThat(actualRequest.getServletRequest()).isEqualTo(request);
    assertThat(actualResponse.getServletResponse()).isEqualTo(response);
}
项目:spring4-understanding    文件:AbstractSockJsService.java   
@Override
public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOException {
    if (HttpMethod.GET == request.getMethod()) {
        addNoCacheHeaders(response);
        if (checkOrigin(request, response)) {
            response.getHeaders().setContentType(new MediaType("application", "json", UTF8_CHARSET));
            String content = String.format(
                    INFO_CONTENT, random.nextInt(), isSessionCookieNeeded(), isWebSocketEnabled());
            response.getBody().write(content.getBytes());
        }

    }
    else if (HttpMethod.OPTIONS == request.getMethod()) {
        if (checkOrigin(request, response)) {
            addCacheHeaders(response);
            response.setStatusCode(HttpStatus.NO_CONTENT);
        }
    }
    else {
        sendMethodNotAllowed(response, HttpMethod.OPTIONS, HttpMethod.GET);
    }
}
项目:spring4-understanding    文件:AbstractHttpSockJsSession.java   
/**
 * Handle all requests, except the first one, to receive messages on a SockJS
 * HTTP transport based session.
 * <p>Long polling-based transports (e.g. "xhr", "jsonp") complete the request
 * after writing any buffered message frames (or the next one). Streaming-based
 * transports ("xhr_streaming", "eventsource", and "htmlfile") leave the
 * response open longer for further streaming of message frames but will also
 * close it eventually after some amount of data has been sent.
 * @param request the current request
 * @param response the current response
 * @param frameFormat the transport-specific SocksJS frame format to use
 */
public void handleSuccessiveRequest(ServerHttpRequest request, ServerHttpResponse response,
        SockJsFrameFormat frameFormat) throws SockJsException {

    synchronized (this.responseLock) {
        try {
            if (isClosed()) {
                response.getBody().write(SockJsFrame.closeFrameGoAway().getContentBytes());
                return;
            }
            this.response = response;
            this.frameFormat = frameFormat;
            this.asyncRequestControl = request.getAsyncRequestControl(response);
            this.asyncRequestControl.start(-1);

            disableShallowEtagHeaderFilter(request);

            handleRequestInternal(request, response, false);
            this.readyToSend = isActive();
        }
        catch (Throwable ex) {
            tryCloseWithSockJsTransportError(ex, CloseStatus.SERVER_ERROR);
            throw new SockJsTransportFailureException("Failed to handle SockJS receive request", getId(), ex);
        }
    }
}
项目:spring4-understanding    文件:HtmlFileTransportHandler.java   
@Override
public void handleRequestInternal(ServerHttpRequest request, ServerHttpResponse response,
        AbstractHttpSockJsSession sockJsSession) throws SockJsException {

    String callback = getCallbackParam(request);
    if (!StringUtils.hasText(callback)) {
        response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR);
        try {
            response.getBody().write("\"callback\" parameter required".getBytes(UTF8_CHARSET));
        }
        catch (IOException ex) {
            sockJsSession.tryCloseWithSockJsTransportError(ex, CloseStatus.SERVER_ERROR);
            throw new SockJsTransportFailureException("Failed to write to response", sockJsSession.getId(), ex);
        }
        return;
    }

    super.handleRequestInternal(request, response, sockJsSession);
}
项目:spring4-understanding    文件:JsonpPollingTransportHandler.java   
@Override
public void handleRequestInternal(ServerHttpRequest request, ServerHttpResponse response,
        AbstractHttpSockJsSession sockJsSession) throws SockJsException {

    try {
        String callback = getCallbackParam(request);
        if (!StringUtils.hasText(callback)) {
            response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR);
            response.getBody().write("\"callback\" parameter required".getBytes(UTF8_CHARSET));
            return;
        }
    }
    catch (Throwable ex) {
        sockJsSession.tryCloseWithSockJsTransportError(ex, CloseStatus.SERVER_ERROR);
        throw new SockJsTransportFailureException("Failed to send error", sockJsSession.getId(), ex);
    }

    super.handleRequestInternal(request, response, sockJsSession);
}
项目:konker-platform    文件:CrudResponseAdvice.java   
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
                              Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,
                              ServerHttpResponse response) {

    HttpStatus httpStatus = HttpStatus.OK;

    if (request.getMethod().equals(HttpMethod.DELETE)) {
        httpStatus = HttpStatus.NO_CONTENT;
    } else if (request.getMethod().equals(HttpMethod.POST)) {
        httpStatus = HttpStatus.CREATED;
    } else if (request.getMethod().equals(HttpMethod.PUT)) {
        httpStatus = HttpStatus.OK;
    } else if (request.getMethod().equals(HttpMethod.GET)) {
        if (body == null) {
            httpStatus = HttpStatus.NOT_FOUND;
        }
    }
    response.setStatusCode(httpStatus);
    return RestResponseBuilder.ok().withHttpStatus(httpStatus).withResult(body).getResponse();

}
项目:spring-boot-jpa    文件:PageResponseBodyAdvisor.java   
@Override
protected void beforeBodyWriteInternal(MappingJacksonValue bodyContainer,
        MediaType contentType, MethodParameter returnType,
        ServerHttpRequest request, ServerHttpResponse response) {

    Page<?> page = ((Page<?>) bodyContainer.getValue());

    response.getHeaders().add(CUSTOM_HEADER_META_PAGINATION,
            String.format(PAGE_METADATA_FMT, page.getNumber(), page.getSize(),
                    page.getTotalElements(), page.getTotalPages(), page.isFirst(),
                    page.isLast()));

    getHttpHeaderLinksString(request, page)
            .filter(StringUtils::isNotEmpty)
            .ifPresent(s -> response.getHeaders().add(HttpHeaders.LINK, s));

    // finally, strip out the actual content and replace it as the body value
    bodyContainer.setValue(page.getContent());
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:HttpRestartServer.java   
/**
 * Handle a server request.
 * @param request the request
 * @param response the response
 * @throws IOException in case of I/O errors
 */
public void handle(ServerHttpRequest request, ServerHttpResponse response)
        throws IOException {
    try {
        Assert.state(request.getHeaders().getContentLength() > 0, "No content");
        ObjectInputStream objectInputStream = new ObjectInputStream(
                request.getBody());
        ClassLoaderFiles files = (ClassLoaderFiles) objectInputStream.readObject();
        objectInputStream.close();
        this.server.updateAndRestart(files);
        response.setStatusCode(HttpStatus.OK);
    }
    catch (Exception ex) {
        logger.warn("Unable to handler restart server HTTP request", ex);
        response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
项目:GitHub    文件:FastJsonpResponseBodyAdvice.java   
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
                              Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,
                              ServerHttpResponse response) {
    MappingFastJsonValue container = getOrCreateContainer(body);
    beforeBodyWriteInternal(container, selectedContentType, returnType, request, response);
    return container;
}
项目:mirrorgate    文件:ServerSentEventsController.java   
@Override
protected void extendResponse(ServerHttpResponse outputMessage) {
    outputMessage.getHeaders().add("X-Accel-Buffering", "no");
    outputMessage.getHeaders().add("Cache-Control", "no-cache;");

    super.extendResponse(outputMessage);
}
项目:newblog    文件:HandshakeInterceptor.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request,
                               ServerHttpResponse response, WebSocketHandler wsHandler,
                               Map<String, Object> attributes) throws Exception {

    // 解决The extension [x-webkit-deflate-frame] is not supported问题
    if (request.getHeaders().containsKey("Sec-WebSocket-Extensions")) {
        request.getHeaders().set("Sec-WebSocket-Extensions",
                "permessage-deflate");
    }

    System.out.println("Before Handshake");
    return super.beforeHandshake(request, response, wsHandler, attributes);
}
项目:newblog    文件:HandshakeInterceptor.java   
@Override
public void afterHandshake(ServerHttpRequest request,
                           ServerHttpResponse response, WebSocketHandler wsHandler,
                           Exception ex) {
    System.out.println("After Handshake");
    super.afterHandshake(request, response, wsHandler, ex);
}
项目:commelina    文件:JacksonResponseBodyJsonAdvice.java   
@Override
protected void beforeBodyWriteInternal(MappingJacksonValue bodyContainer, MediaType contentType,
                                       MethodParameter returnType, ServerHttpRequest request,
                                       ServerHttpResponse response) {

    ((ResponseBodyMessage) bodyContainer.getValue()).businessMsg = "xxxxxxxxxxxxxx";
}
项目:BIMplatform    文件:BinaryGeometryTemplateInterceptor.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler,
        Map<String, Object> attributes) throws Exception {
    String rid = ((ServletServerHttpRequest) request).getServletRequest().getParameter("rid");
    String otid = ((ServletServerHttpRequest) request).getServletRequest().getParameter("otid");
    if (Strings.isNullOrEmpty(rid) || Strings.isNullOrEmpty(otid)) {
        return false;
    } else {
        attributes.put("rid", rid);
        attributes.put("otid", otid);
        return true;
    }
}
项目:BIMplatform    文件:GeometryInterceptor.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler,
        Map<String, Object> attributes) throws Exception {

    String rid = ((ServletServerHttpRequest) request).getServletRequest().getParameter("rid");

    if (Strings.isNullOrEmpty(rid)) {  
        return false;  
    } else {
        attributes.put("rid", rid);  
        return true;  
    }  

}
项目:BIMplatform    文件:StreamGeometryInterceptor.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler,
        Map<String, Object> attributes) throws Exception {

    String rid = ((ServletServerHttpRequest) request).getServletRequest().getParameter("rid");

    if (Strings.isNullOrEmpty(rid)) {  
        return false;  
    } else {
        attributes.put("rid", rid);  
        return true;  
    }  

}
项目:Instant-Messaging    文件:HandshakeInterceptor.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
    System.out.println("Before Handshake");
    ServletServerHttpRequest servletRequest = (ServletServerHttpRequest) request;
    HttpSession session = servletRequest.getServletRequest().getSession();
    if(session!=null){
        //区分socket连接以定向发送消息
        attributes.put("user", session.getAttribute("user"));
    }
    return true;
}
项目:opencron    文件:TerminalHandShaker.java   
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
    if (request instanceof ServletServerHttpRequest) {
        ServletServerHttpRequest servletRequest = (ServletServerHttpRequest) request;
        HttpSession session = servletRequest.getServletRequest().getSession();
        attributes.put("cols",servletRequest.getServletRequest().getParameter("cols"));
        attributes.put("rows",servletRequest.getServletRequest().getParameter("rows"));
        attributes.put("width",servletRequest.getServletRequest().getParameter("width"));
        attributes.put("height",servletRequest.getServletRequest().getParameter("height"));
        attributes.put(SSH_SESSION_ID,session.getAttribute(SSH_SESSION_ID));
        attributes.put(HTTP_SESSION_ID,session.getAttribute(HTTP_SESSION_ID));
    }
    return super.beforeHandshake(request,response,wsHandler,attributes);
}
项目:lemon-fileservice    文件:JsonpResponseBodyAdvice.java   
/** 
 * 重写callback方法,使即支持jsonp格式也支持json格式
 */
@Override
protected void beforeBodyWriteInternal(MappingJacksonValue bodyContainer, MediaType contentType,
                                       MethodParameter returnType, ServerHttpRequest request, ServerHttpResponse response) {

    HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest();

    //如果不存在callback这个请求参数,直接返回,不需要处理为jsonp
    if (ObjectUtils.isEmpty(servletRequest.getParameter("callback"))) {
        return;
    }
    //按设定的请求参数(JsonAdvice构造方法中的this.jsonpQueryParamNames = new String[]{"callback"};),处理返回结果为jsonp格式
    for (String name : this.jsonpQueryParamNames) {
        String value = servletRequest.getParameter(name);
        if (value != null) {
            if (!isValidJsonpQueryParam(value)) {
    if (logger.isDebugEnabled()) {
        logger.debug("Ignoring invalid jsonp parameter value: " + value);
    }
    continue;
}
            MediaType contentTypeToUse = getContentType(contentType, request, response);
            response.getHeaders().setContentType(contentTypeToUse);
            bodyContainer.setJsonpFunction(value);
            return;
        }
    }
}
项目:filter    文件:SelfZuulFilterDataResponseHandler.java   
public Object beforeBodyWrite(Object body, MethodParameter returnType,
                              MediaType selectedContentType, Class selectedConverterType,
                              ServerHttpRequest request, ServerHttpResponse response) {

    Class converterType = returnType.getMethod().getDeclaringClass();
    FilterResponse defaultResponse = returnType.getMethod().getAnnotation(FilterResponse.class);
    if(defaultResponse==null) {
        defaultResponse = (FilterResponse) converterType.getAnnotation(FilterResponse.class);
    }
    String className =converterType.getName();
    logger.debug("beforeBodyWrite - className >" +className +", defaultResponse - > "+defaultResponse);
    if(defaultResponse!=null){
        switch (defaultResponse.type()){
            case defaultFilter:{
                return body;
            }
        }
    }

    Response res = new Response();
    Msg msg = new Msg();
    res.setCode(40000);
    res.setData(body);
    res.setMsg("");

    msg.setState(1);
    msg.setRes(res);

    return msg;
}
项目:role-api    文件:PaginationAdvice.java   
/**
 * {@inheritDoc}
 */
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
                              Class<? extends HttpMessageConverter<?>> selectedConverterType,
                              ServerHttpRequest request, ServerHttpResponse response) {
    Page<?> page = (Page<?>) body;
    this.paginationHeadersBuilder.addPaginationData(response.getHeaders(), page);
    return page.getContent();
}
项目:role-api    文件:PaginationAdviceTest.java   
@Test
public void beforeBodyWriteInternal_WriteHeaderPaginationData() {
    Page<?> samplePage = mock(Page.class);
    ServerHttpResponse response = mock(ServerHttpResponse.class);

    HttpHeaders headers = new HttpHeaders();

    when(paginationHeadersBuilder.addPaginationData(headers, samplePage)).thenReturn(headers);
    when(response.getHeaders()).thenReturn(headers);

    paginationAdvice.beforeBodyWrite(samplePage, null, null, null, null, response);

    verify(paginationHeadersBuilder, times(1)).addPaginationData(headers, samplePage);
}
项目:bubble2    文件:ControllerCrossDomainAdvice.java   
@Override
protected void beforeBodyWriteInternal(MappingJacksonValue bodyContainer, MediaType contentType, MethodParameter returnType,
        ServerHttpRequest request, ServerHttpResponse response) {
    response.getHeaders().set("Access-Control-Allow-Headers",
            "Origin,No-Cache,X-Requested-with,If-Modified-Since,Last-Modified,Cache-Control,Expires,Content-Type");
    response.getHeaders().set("Access-Control-Allow-Origin", "*");
    response.getHeaders().set("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
    response.getHeaders().set("Access-Control-Max-Age", "1512000");
}