Example usage for io.vertx.core.http HttpServerRequest remoteAddress

List of usage examples for io.vertx.core.http HttpServerRequest remoteAddress

Introduction

In this page you can find the example usage for io.vertx.core.http HttpServerRequest remoteAddress.

Prototype

@CacheReturn
default SocketAddress remoteAddress() 

Source Link

Usage

From source file:com.navercorp.pinpoint.plugin.vertx.interceptor.HttpServerRequestAdaptor.java

License:Apache License

@Override
public String getRemoteAddress(HttpServerRequest request) {
    final SocketAddress socketAddress = request.remoteAddress();
    if (socketAddress != null) {
        return socketAddress.toString();
    }/*from  ww w . ja v a  2s.c o  m*/
    return "unknown";
}

From source file:com.navercorp.pinpoint.plugin.vertx.interceptor.ServerConnectionHandleRequestInterceptor.java

License:Apache License

private Trace createTrace(final HttpServerRequest request) {
    final String requestURI = request.path();
    if (requestURI != null && excludeUrlFilter.filter(requestURI)) {
        // skip request.
        if (isTrace) {
            logger.trace("filter requestURI:{}", requestURI);
        }// ww w . j  av a  2 s. c o  m
        return null;
    }

    final boolean sampling = samplingEnable(request);
    if (!sampling) {
        final Trace trace = traceContext.disableSampling();
        if (isDebug) {
            logger.debug("Remote call sampling flag found. skip trace requestUrl:{}, remoteAddr:{}",
                    request.path(), request.remoteAddress());
        }
        if (!initScope(trace)) {
            // invalid scope.
            deleteTrace(trace);
            return null;
        }

        return trace;
    }

    final TraceId traceId = populateTraceIdFromRequest(request);
    if (traceId != null) {
        final Trace trace = traceContext.continueAsyncTraceObject(traceId);
        if (trace.canSampled()) {
            final SpanRecorder recorder = trace.getSpanRecorder();
            recordRootSpan(recorder, request);
            if (isDebug) {
                logger.debug("TraceID exist. continue trace. traceId:{}, requestUrl:{}, remoteAddr:{}", traceId,
                        request.path(), request.remoteAddress());
            }
        } else {
            if (isDebug) {
                logger.debug(
                        "TraceID exist. camSampled is false. skip trace. traceId:{}, requestUrl:{}, remoteAddr:{}",
                        traceId, request.path(), request.remoteAddress());
            }
        }
        if (!initScope(trace)) {
            // invalid scope.
            deleteTrace(trace);
            return null;
        }

        return trace;
    } else {
        // make asynchronous trace.
        final Trace trace = traceContext.newAsyncTraceObject();
        if (trace.canSampled()) {
            final SpanRecorder recorder = trace.getSpanRecorder();
            recordRootSpan(recorder, request);
            if (isDebug) {
                logger.debug("TraceID not exist. start new trace. requestUrl:{}, remoteAddr:{}", request.path(),
                        request.remoteAddress());
            }
        } else {
            if (isDebug) {
                logger.debug("TraceID not exist. camSampled is false. skip trace. requestUrl:{}, remoteAddr:{}",
                        request.path(), request.remoteAddress());
            }
        }

        if (!initScope(trace)) {
            // invalid scope.
            deleteTrace(trace);
            return null;
        }

        return trace;
    }
}

From source file:gribbit.util.Log.java

License:Open Source License

/** Produce log line in Common Log Format -- https://en.wikipedia.org/wiki/Common_Log_Format */
private static String produceLogLine(HttpServerRequest request, Response response) {
    StringBuilder buf = new StringBuilder();
    buf.append(request == null ? "-" : request.remoteAddress());
    buf.append(" - - [");
    buf.append(ZonedDateTime.now().format(LOG_TIME_FORMATTER));
    buf.append("] \"");
    buf.append(request == null ? "-" : request.method());
    buf.append(' ');
    buf.append(request == null ? "-" : request.uri());
    buf.append(' ');
    buf.append('-'); // Not sure how to read HTTP version from vertx request
    buf.append("\" ");
    buf.append(response == null ? "-" : Integer.toString(response.getStatus().code()));
    buf.append(' ');
    buf.append("-"); // Content-Length is calculated by Vert.x, so is unknown here
    return buf.toString();
}

From source file:io.advantageous.qbit.vertx.http.server.VertxServerUtils.java

License:Apache License

public HttpRequest createRequest(final HttpServerRequest request, final Supplier<Buffer> buffer,
        final Map<String, Object> data, final CopyOnWriteArrayList<HttpResponseDecorator> decorators,
        final HttpResponseCreator httpResponseCreator) {

    final MultiMap<String, String> headers = request.headers().size() == 0 ? MultiMap.empty()
            : new MultiMapWrapper(request.headers());
    final String contentType = request.headers().get("Content-Type");

    final String contentLengthHeaderValue = request.headers().get("Content-Length");
    final int contentLength = contentLengthHeaderValue == null ? 0 : Integer.parseInt(contentLengthHeaderValue);
    final HttpRequestBuilder httpRequestBuilder = HttpRequestBuilder.httpRequestBuilder();
    buildParams(httpRequestBuilder, request, contentType);
    final MultiMap<String, String> params = httpRequestBuilder.getParams();
    final String requestPath = request.path();

    httpRequestBuilder.setId(requestId.incrementAndGet()).setContentLength(contentLength).setData(data)
            .setUri(requestPath).setMethod(request.method().toString())
            .setBodySupplier(() -> buffer == null ? null : buffer.get().getBytes())
            .setRemoteAddress(request.remoteAddress().toString())
            .setResponse(createResponse(requestPath, request.method().toString(), headers, params,
                    request.response(), decorators, httpResponseCreator))
            .setTimestamp(time == 0L ? Timer.timer().now() : time).setHeaders(headers);

    return httpRequestBuilder.build();
}

From source file:io.apiman.gateway.platforms.vertx3.http.HttpApiFactory.java

License:Apache License

public static ApiRequest buildRequest(HttpServerRequest req, boolean isTransportSecure) {
    ApiRequest apimanRequest = new ApiRequest();
    apimanRequest.setApiKey(parseApiKey(req));
    apimanRequest.setRemoteAddr(req.remoteAddress().host());
    apimanRequest.setType(req.method().toString());
    apimanRequest.setTransportSecure(isTransportSecure);
    multimapToMap(apimanRequest.getHeaders(), req.headers(), IGNORESET);
    multimapToMap(apimanRequest.getQueryParams(), req.params(), Collections.<String>emptySet());
    parsePath(req, apimanRequest);//from   w  w  w .j av  a2 s . c  o m
    return apimanRequest;
}

From source file:io.apiman.gateway.platforms.vertx3.http.HttpServiceFactory.java

License:Apache License

public static VertxServiceRequest buildRequest(HttpServerRequest req, boolean isTransportSecure) {
    VertxServiceRequest apimanRequest = new VertxServiceRequest();
    apimanRequest.setApiKey(parseApiKey(req));
    apimanRequest.setRemoteAddr(req.remoteAddress().host());
    apimanRequest.setType(req.method().toString());
    apimanRequest.setTransportSecure(isTransportSecure);
    multimapToMap(apimanRequest.getHeaders(), req.headers(), IGNORESET);
    multimapToMap(apimanRequest.getQueryParams(), req.params(), Collections.<String>emptySet());
    mungePath(req, apimanRequest);/*from ww w .j  av  a  2 s. c o m*/
    return apimanRequest;
}

From source file:io.helixservice.feature.restservice.controller.VertxRequestHandler.java

License:Open Source License

/**
 * Handles incoming Vert.x request, forwarding it to the appropriate controller.
 *
 * @param event Vert.x Web request context
 *///from  w  ww . ja  v  a  2  s. c om
@Suspendable
public void handle(RoutingContext event) {
    Request<?> request = null;

    RequestMetricsPublisher requestMetricsPublisher = new RequestMetricsPublisher(eventBus, path);

    try {
        HttpServerRequest vertxRequest = event.request();
        requestMetricsPublisher.setHttpMethod(event.request().method().name());

        request = new Request<>(vertxRequest.method().name(), vertxRequest.uri(),
                VertxTypeConverter.toGuavaMultimap(vertxRequest.params()),
                VertxTypeConverter.toGuavaMultimap(vertxRequest.headers()), unmarshalRequestBody(event),
                vertxRequest.remoteAddress().host(), vertxRequest.version().name());

        Response response;
        Method method = endpoint.getEndpointMethod();
        if (method != null) {
            response = (Response) method.invoke(endpoint.getController(), request);
        } else {
            EndpointHandler endpointHandler = this.endpoint.getEndpointHandler();
            response = endpointHandler.handle(request);
        }

        //noinspection unchecked
        event.response().headers().addAll(VertxTypeConverter.toVertxMultiMap(response.getHeaders()));
        Message responseMessage = marshalResponseBody(response);

        Buffer responseBuffer = Buffer.buffer(responseMessage.getBody());
        event.response().setChunked(true).setStatusCode(response.getHttpStatusCode())
                .putHeader(CONTENT_TYPE, responseMessage.getContentTypes()).write(responseBuffer).end();

        requestMetricsPublisher.setResponseSize(responseBuffer.length());
        requestMetricsPublisher
                .setSuccess(response.getHttpStatusCode() >= 200 && response.getHttpStatusCode() <= 299);
    } catch (InvocationTargetException t) {
        int responseSize = handleErrorResponse(event, request, t.getCause());
        requestMetricsPublisher.setResponseSize(responseSize);
    } catch (Throwable t) {
        int responseSize = handleErrorResponse(event, request, t);
        requestMetricsPublisher.setResponseSize(responseSize);
    } finally {
        requestMetricsPublisher.publish();
    }
}

From source file:io.helixservice.feature.restservice.filter.FilterHandler.java

License:Open Source License

private Request<byte[]> buildRequest(RoutingContext routingContext) {
    HttpServerRequest vertxRequest = routingContext.request();

    return new Request<>(vertxRequest.method().name(), vertxRequest.uri(),
            VertxTypeConverter.toGuavaMultimap(vertxRequest.params()),
            VertxTypeConverter.toGuavaMultimap(vertxRequest.headers()), routingContext.getBody().getBytes(),
            vertxRequest.remoteAddress().host(), vertxRequest.version().name());
}

From source file:org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.RemoteHostItem.java

License:Apache License

@Override
public String getFormattedItem(AccessLogParam<RoutingContext> accessLogParam) {
    HttpServerRequest request = accessLogParam.getContextData().request();
    if (null == request) {
        return EMPTY_RESULT;
    }/*w w w .j a v a  2s  . com*/

    SocketAddress remoteAddress = request.remoteAddress();
    if (null == remoteAddress) {
        return EMPTY_RESULT;
    }

    String remoteHost = remoteAddress.host();
    if (StringUtils.isEmpty(remoteHost)) {
        return EMPTY_RESULT;
    }
    return remoteHost;
}

From source file:org.pac4j.vertx.VertxWebContext.java

License:Apache License

public VertxWebContext(final RoutingContext routingContext) {
    final HttpServerRequest request = routingContext.request();
    this.routingContext = routingContext;
    this.method = request.method().toString();

    this.fullUrl = request.absoluteURI();
    URI uri;//from   www  .jav a2s .co m
    try {
        uri = new URI(fullUrl);
    } catch (URISyntaxException e) {
        e.printStackTrace();
        throw new InvalidParameterException(
                "Request to invalid URL " + fullUrl + " while constructing VertxWebContext");
    }
    this.scheme = uri.getScheme();
    this.serverName = uri.getHost();
    this.serverPort = (uri.getPort() != -1) ? uri.getPort() : scheme.equals("http") ? 80 : 443;
    this.remoteAddress = request.remoteAddress().toString();

    headers = new JsonObject();
    for (String name : request.headers().names()) {
        headers.put(name, request.headers().get(name));
    }

    parameters = new JsonObject();
    for (String name : request.params().names()) {
        parameters.put(name, new JsonArray(Arrays.asList(request.params().getAll(name).toArray())));
    }

    mapParameters = new HashMap<>();
    for (String name : parameters.fieldNames()) {
        JsonArray params = parameters.getJsonArray(name);
        String[] values = new String[params.size()];
        int i = 0;
        for (Object o : params) {
            values[i++] = (String) o;
        }
        mapParameters.put(name, values);
    }

}