Example usage for io.vertx.core MultiMap get

List of usage examples for io.vertx.core MultiMap get

Introduction

In this page you can find the example usage for io.vertx.core MultiMap get.

Prototype

@Nullable
String get(String name);

Source Link

Document

Returns the value of with the specified name.

Usage

From source file:com.hubrick.vertx.s3.client.S3Client.java

License:Apache License

private void populateCommonResponseHeaders(MultiMap headers, CommonResponseHeaders commonResponseHeaders) {
    commonResponseHeaders.setContentType(Optional.ofNullable(headers.get(Headers.CONTENT_TYPE))
            .filter(StringUtils::isNotBlank).orElse(null));
    commonResponseHeaders.setContentLength(Optional.ofNullable(headers.get(Headers.CONTENT_LENGTH))
            .filter(StringUtils::isNotBlank).map(Long::valueOf).orElse(null));
    commonResponseHeaders.setDate(//from   w w w.  j  a  va2  s.  c  o  m
            Optional.ofNullable(headers.get(Headers.DATE)).filter(StringUtils::isNotBlank).orElse(null));
    commonResponseHeaders.setETag(
            Optional.ofNullable(headers.get(Headers.ETAG)).filter(StringUtils::isNotBlank).orElse(null));
    commonResponseHeaders.setConnection(Optional.ofNullable(headers.get(Headers.CONNECTION))
            .filter(StringUtils::isNotBlank).map(Connection::fromString).orElse(null));
    commonResponseHeaders.setServer(
            Optional.ofNullable(headers.get(Headers.SERVER)).filter(StringUtils::isNotBlank).orElse(null));
    commonResponseHeaders.setAmzDeleteMarker(Optional.ofNullable(headers.get(Headers.X_AMZ_DELETE_MARKER))
            .filter(StringUtils::isNotBlank).map(Boolean::valueOf).orElse(null));
    commonResponseHeaders.setAmzId2(
            Optional.ofNullable(headers.get(Headers.X_AMZ_ID_2)).filter(StringUtils::isNotBlank).orElse(null));
    commonResponseHeaders.setAmzRequestId(Optional.ofNullable(headers.get(Headers.X_AMZ_REQUEST_ID))
            .filter(StringUtils::isNotBlank).orElse(null));
    commonResponseHeaders.setAmzVersionId(Optional.ofNullable(headers.get(Headers.X_AMZ_VERSION_ID))
            .filter(StringUtils::isNotBlank).orElse(null));
}

From source file:com.rbmhtechnology.docs.vertx.japi.Documentation.java

License:Open Source License

public static void main(String[] args) {

    StorageProvider storageProvider = new FakeStorageProvider();

    //#adapter-example

    ActorSystem actorSystem = ActorSystem.create("system");
    Vertx vertx = Vertx.vertx();/*w w w. j ava  2  s.c o  m*/

    ReplicationEndpoint endpoint = ReplicationEndpoint.create("endpoint", set("sourceLog", "destinationLog"),
            id -> LeveldbEventLog.props(id, "log", true), set(), EndpointFilters$.MODULE$.NoFilters(),
            "default", ApplicationVersion.apply("0.1"), actorSystem);

    ActorRef sourceLog = endpoint.logs().apply("sourceLog");
    ActorRef destinationLog = endpoint.logs().apply("destinationLog");

    VertxAdapterConfig config = VertxAdapterConfig.create()
            .addProducer(EventProducer.fromLog(sourceLog).publishTo("address-1").as("vertx-producer"))
            .addProducer(EventProducer.fromEndpoints("address-2").writeTo(destinationLog).as("log-producer"));

    VertxAdapter adapter = VertxAdapter.create(config, vertx, storageProvider, actorSystem);

    // receive events from sourceLog...
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        final Event event = message.body();

        // ...and persist the event in destinationLog
        vertx.eventBus().send("address-2", event);
    });

    adapter.start();
    //#

    //#vertx-event-producer
    EventProducer.fromLog(sourceLog).publishTo("address-1").as("vertx-producer");
    //#

    //#log-event-producer
    EventProducer.fromEndpoints("address-2").writeTo(destinationLog).as("log-producer");
    //#

    //#event-processing-vertx-producer
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        Event event = message.body();
    });
    //#

    //#event-processing-log-producer
    vertx.eventBus().send("address-2", new Event("event-1"));
    //#

    //#vertx-publish-producer
    EventProducer.fromLog(sourceLog).publishTo(ev -> {
        if (ev instanceof Event) {
            return Optional.of("address1");
        } else if (ev instanceof Event2) {
            return Optional.of("address2");
        }
        return Optional.of("default-address");
    }).as("vertx-publish-producer");
    //#

    //#vertx-ptp-producer-at-most-once
    EventProducer.fromLog(sourceLog).sendTo(ev -> {
        if (ev instanceof Event) {
            return Optional.of("address1");
        }
        if (ev instanceof Event2) {
            return Optional.of("address2");
        }
        return Optional.of("default-address");
    }).as("vertx-ptp-producer");
    //#

    //#vertx-ptp-producer-at-least-once
    EventProducer.fromLog(sourceLog).sendTo("address-1")
            .atLeastOnce(ConfirmationType.Batch.withSize(5), Duration.ofSeconds(5)).as("vertx-ptp-producer");
    //#

    //#vertx-ptp-producer-handler
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        Event event = message.body();
        // confirm event receipt
        message.reply(Confirmation.create());
    });
    //#

    //#log-event-multiple-producer
    EventProducer.fromEndpoints("address-1", "address-2").writeTo(destinationLog, ev -> {
        if (ev instanceof Event) {
            return true;
        }
        if (ev instanceof Event2) {
            return true;
        }
        return false;
    }).as("log-producer");
    //#

    //#log-producer-handler
    vertx.eventBus().<ProcessingResult>send("address-1", new Event("event-1"), ar -> {
        if (ar.succeeded()) {
            ProcessingResult result = ar.result().body();
        } else {
            // write failed
            Throwable failure = ar.cause();
        }
    });
    //#

    //#message-codec
    VertxAdapterConfig.create().registerDefaultCodecFor(Event.class, Event2.class);
    //#

    //#event-metadata-from-headers
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        MultiMap headers = message.headers();

        String localLogId = headers.get(EventMetadata.Headers.LOCAL_LOG_ID);
        Long localSeqNr = Long.valueOf(headers.get(EventMetadata.Headers.LOCAL_SEQUENCE_NR));
        String emitterId = headers.get(EventMetadata.Headers.EMITTER_ID);
    });
    //#

    //#event-metadata-from-helper
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        EventMetadata metadata = EventMetadata.fromHeaders(message.headers()).get();

        String localLogId = metadata.localLogId();
        Long localSeqNr = metadata.localSequenceNr();
        String emitterId = metadata.emitterId();
    });
    //#
}

From source file:de.braintags.netrelay.controller.authentication.FormLoginHandlerBt.java

License:Open Source License

@Override
public void handle(RoutingContext context) {
    HttpServerRequest req = context.request();
    if (req.method() != HttpMethod.POST) {
        context.fail(405); // Must be a POST
    } else {// w  ww .  ja va  2s.  c  o  m
        if (!req.isExpectMultipart()) {
            throw new IllegalStateException("Form body not parsed - did you forget to include a BodyHandler?");
        }
        MultiMap params = req.formAttributes();
        String username = params.get(usernameParam);
        String password = params.get(passwordParam);
        if (username == null || password == null) {
            LOGGER.warn("No username or password provided in form - did you forget to include a BodyHandler?");
            context.fail(400);
        } else {
            JsonObject authInfo = new JsonObject().put("username", username).put("password", password);
            authProvider.authenticate(authInfo, res -> {
                if (res.succeeded()) {
                    User user = res.result();
                    LOGGER.info("Login success, found user " + user);
                    MemberUtil.setContextUser(context, user);
                    if (redirectBySession(context)) {
                        return;
                    }
                    // Either no session or no return url
                    if (!redirectByDirectLoginUrl(context)) {
                        // Just show a basic page
                        req.response().end(DEFAULT_DIRECT_LOGGED_IN_OK_PAGE);
                    }
                } else {
                    LOGGER.info("authentication failed: " + res.cause());
                    handleAuthenticationError(context, res.cause());
                }
            });
        }
    }
}

From source file:examples.HTTPExamples.java

License:Open Source License

public void example8(HttpServerRequest request) {

    MultiMap headers = request.headers();

    // Get the User-Agent:
    System.out.println("User agent is " + headers.get("user-agent"));

    // You can also do this and get the same result:
    System.out.println("User agent is " + headers.get("User-Agent"));
}

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

License:Apache License

private static HeaderMap wrapMultiMap(MultiMap headers) {
    return new HeaderMap() {
        private static final long serialVersionUID = -1406124274678587935L;

        @Override()/*w ww. ja va  2s.c  o  m*/
        public String get(String key) {
            return headers.get(key);
        }
    };
}

From source file:io.github.bckfnn.actioner.Action.java

License:Apache License

public void redirect(RoutingContext ctx, Map<String, String> map) {
    String url = url();//from  w  ww . j av  a  2 s  .  c  o  m
    MultiMap requestMap = ctx.request().params();
    for (String grp : groups()) {
        String v = map.get(grp);
        if (v == null) {
            v = requestMap.get(grp);
        }
        if (v == null) {
            v = ctx.get(grp);
        }

        if (v == null) {
            throw new RuntimeException("Missing url replacement group " + grp);
        }
        String val = v;
        url = url.replace(":" + grp, Utils.val(() -> URLEncoder.encode(val, "UTF-8")));
    }
    ctx.response().setStatusCode(301);
    ctx.response().putHeader("Location", url);
    ctx.response().end();
}

From source file:io.github.bckfnn.actioner.Layout.java

License:Apache License

public String link(Action action, Map<String, String> map) {
    Objects.requireNonNull(action, "action");

    String url = action.url();//from   w  w w .j  a  v a  2s . c  om
    MultiMap requestMap = ctx.request().params();
    for (String grp : action.groups()) {

        String v = null;
        if (map.containsKey(grp)) {
            v = String.valueOf(map.get(grp));
        }
        if (v == null) {
            v = requestMap.get(grp);
        }
        if (v == null) {
            v = ctx.get(grp);
        }

        if (v == null) {
            throw new RuntimeException("Missing url replacement group " + grp + " for action " + action.name());
        }
        String val = v;
        url = url.replace(":" + grp, Utils.val(() -> URLEncoder.encode(val, "UTF-8")));
    }
    return url;
}

From source file:io.gravitee.am.gateway.handler.vertx.auth.handler.impl.FormLoginHandlerImpl.java

License:Apache License

@Override
public void handle(RoutingContext context) {
    HttpServerRequest req = context.request();
    if (req.method() != HttpMethod.POST) {
        context.fail(405); // Must be a POST
    } else {// ww  w  .j av a2 s  .  c  o m
        if (!req.isExpectMultipart()) {
            throw new IllegalStateException("Form body not parsed - do you forget to include a BodyHandler?");
        }
        MultiMap params = req.formAttributes();
        String username = params.get(usernameParam);
        String password = params.get(passwordParam);
        String clientId = params.get(OAuth2Constants.CLIENT_ID);
        if (username == null || password == null) {
            log.warn("No username or password provided in form - did you forget to include a BodyHandler?");
            context.fail(400);
        } else if (clientId == null) {
            log.warn("No client id in form - did you forget to include client_id query parameter ?");
            context.fail(400);
        } else {
            Session session = context.session();
            JsonObject authInfo = new JsonObject().put("username", username).put("password", password)
                    .put(OAuth2Constants.CLIENT_ID, clientId);
            authProvider.authenticate(authInfo, res -> {
                if (res.succeeded()) {
                    User user = res.result();
                    context.setUser(user);
                    if (session != null) {
                        // the user has upgraded from unauthenticated to authenticated
                        // session should be upgraded as recommended by owasp
                        session.regenerateId();

                        // Note : keep returnURLParam in session in case the user go to previous page
                        // String returnURL = session.remove(returnURLParam);
                        String returnURL = session.get(returnURLParam);
                        if (returnURL != null) {
                            // Now redirect back to the original url
                            doRedirect(req.response(), returnURL);
                            return;
                        }
                    }
                    // Either no session or no return url
                    if (directLoggedInOKURL != null) {
                        // Redirect to the default logged in OK page - this would occur
                        // if the user logged in directly at this URL without being redirected here first from another
                        // url
                        doRedirect(req.response(), directLoggedInOKURL);
                    } else {
                        // Just show a basic page
                        req.response().end(DEFAULT_DIRECT_LOGGED_IN_OK_PAGE);
                    }
                } else {
                    try {
                        Map<String, String> parameters = new HashMap<>();
                        parameters.put(OAuth2Constants.CLIENT_ID, clientId);
                        parameters.put("error", "login_failed");
                        String uri = UriBuilderRequest.resolveProxyRequest(
                                new io.vertx.reactivex.core.http.HttpServerRequest(req), req.uri(), parameters,
                                false, false);

                        doRedirect(context.response(), uri);
                    } catch (URISyntaxException e) {
                        context.fail(503);
                    }
                }
            });
        }
    }
}

From source file:io.knotx.mocks.adapter.MockServiceHandler.java

License:Apache License

private String getStatusCode(RoutingContext context) {
    MultiMap queryParams = context.request().params();
    return queryParams.get("statusCode");
}

From source file:io.nitor.api.backend.auth.SetupAzureAdConnectAuth.java

License:Apache License

private static Handler<RoutingContext> authHandler(JsonObject adAuth, Set<String> forbiddenHeaders,
        HashMap<String, Pattern> requiredHeaderMatchers, String publicURI, boolean virtualHosting,
        CookieSessionHandler sessionHandler, String redirectUri, RedirectTokenService redirectTokenService) {
    String publicHost = getUriHostName(publicURI);
    return ctx -> {
        Optional<Map<String, String>> headers = ofNullable(sessionHandler.getSessionData(ctx));
        if (headers.isPresent()) {
            MultiMap h = ctx.request().headers();
            forbiddenHeaders.forEach(h::remove);
            headers.get().entrySet().stream().filter(e -> !e.getKey().startsWith(SECRET_DATA_PREFIX))
                    .forEach(e -> h.set(e.getKey(), e.getValue()));

            if (!requiredHeaderMatchers.entrySet().stream()
                    .allMatch(e -> headerMatches(h.get(e.getKey()), e.getValue()))) {
                logger.info("Not authorised to view resource '" + ctx.request().path() + "' with session data: "
                        + headers.get());

                ctx.reroute(GET, FORBIDDEN_PATH);
                return;
            }//from  w w w  . j  ava  2s  .  c om

            ctx.next();
            return;
        }

        String publicURIWithoutProtocol = getUriHostName(publicURI);

        String host = getUriHostName(ctx.request().host());
        if (virtualHosting && !publicURIWithoutProtocol.equals(host)) {
            // phase 1: executed iff authentication cookie is missing && the browser is not on the auth domain but on a virtual domain
            // -> jump to auth domain and pass the current url inside token
            String currentUri = forceHttps(replaceHostAndPort(ctx.request().absoluteURI(), host));
            String token = redirectTokenService.createToken(ctx, singletonMap("u", currentUri));
            ctx.response()
                    .setStatusCode((ctx.request().method() == GET ? TEMPORARY_REDIRECT : SEE_OTHER).code()) // ask browser to turn POST etc into GET when redirecting
                    .putHeader(CACHE_CONTROL, "no-cache, no-store, must-revalidate").putHeader(EXPIRES, "0")
                    .putHeader(LOCATION, publicURI + PROXY_AUTH_REDIRECT_BEFORE + "?t=" + urlEncode(token))
                    .end();
            return;
        }

        StringBuilder sb = new StringBuilder();
        String currentUri = forceHttps(replaceHost(ctx.request().absoluteURI(), publicHost));
        sb.append(adAuth.getJsonObject("openIdConfig").getString("authorization_endpoint"))
                .append("?domain_hint=organizations&response_type=code&response_mode=query")
                .append("&client_id=").append(urlEncode(adAuth.getString("clientId"))).append("&redirect_uri=")
                .append(urlEncode(redirectUri)).append("&scope=").append(urlEncode(adAuth.getString("scope")))
                //.append("&login_hint=").append(urlEncode(previousKnownUserName)) -- could try to fetch it from expired session cookie?
                //.append("&prompt=").append("login") -- force login - maybe do if IP is from different country?
                .append("&state=")
                .append(urlEncode(redirectTokenService.createToken(ctx, singletonMap("a", currentUri))));
        ctx.response().setStatusCode(TEMPORARY_REDIRECT.code()).putHeader(LOCATION, sb)
                .putHeader(CACHE_CONTROL, "no-cache, no-store, must-revalidate").putHeader(EXPIRES, "0").end();
    };
}