List of usage examples for io.vertx.core MultiMap get
@Nullable String get(String name);
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(); }; }