List of usage examples for io.vertx.core.http HttpClient postAbs
HttpClientRequest postAbs(String absoluteURI);
From source file:io.nitor.api.backend.auth.SetupAzureAdConnectAuth.java
License:Apache License
private static void finalizeAuthentication(RoutingContext ctx, JsonObject adAuth, HttpClient httpClient, CookieSessionHandler sessionHandler, List<GraphQuery> graphQueries, String redirectUri, RedirectTokenService redirectTokenService) { Map<String, String> params = redirectTokenService.getParameters(ctx, ctx.request().getParam("state")); if (params == null || params.get("a") == null) { logger.error("Missing state parameter"); ctx.reroute(GET, UNAUTHORIZED_PATH); return;/*from ww w . j a v a 2 s. co m*/ } String originalUrl = params.get("a"); String code = ctx.request().getParam("code"); String graphScopes = adAuth.getString("scope"); Buffer form = Buffer .buffer("code=" + urlEncode(code) + "&client_id=" + urlEncode(adAuth.getString("clientId")) + "&scope=" + urlEncode(graphScopes) + "&grant_type=authorization_code" + "&client_secret=" + urlEncode(adAuth.getString("clientSecret")) + "&redirect_uri=" + urlEncode(redirectUri)); String tokenUrl = adAuth.getJsonObject("openIdConfig").getString("token_endpoint"); logger.debug("Requesting graph access token from " + tokenUrl + " with [ " + form + "]"); httpClient.postAbs(tokenUrl).putHeader(ACCEPT, APPLICATION_JSON) .putHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) .putHeader(CONTENT_LENGTH, String.valueOf(form.length())).setTimeout(SECONDS.toMillis(10)) .exceptionHandler(err -> { logger.error("Failed to fetch graph access token", err); ctx.reroute(GET, UNAUTHORIZED_PATH); }).handler(resp -> processGraphTokenResponse(resp, ctx, httpClient, sessionHandler, graphQueries, originalUrl)) .end(form); }
From source file:org.folio.auth.login_module.MainVerticle.java
private Future<String> fetchToken(JsonObject payload, String url, String requestToken, String tenant) { Future<String> future = Future.future(); HttpClient client = vertx.createHttpClient(); logger.debug("Attempting to request token from url " + url + " for claims " + payload.encode()); logger.debug("Using token: Bearer " + requestToken); HttpClientRequest request = client.postAbs(url); request.putHeader("Authorization", "Bearer " + requestToken); request.putHeader("X-Okapi-Tenant", tenant); request.handler(result -> {//w w w. ja v a 2 s. c om if (result.statusCode() != 200) { future.fail("Got error " + result.statusCode() + " fetching token"); logger.debug("Fetching token trace: " + result.getHeader("X-Okapi-Trace")); result.bodyHandler(buf -> { logger.debug("Output from token fetch is: " + buf.toString()); }); } else { String token = result.getHeader("Authorization"); future.complete(token); } }); request.end(new JsonObject().put("payload", payload).encode()); return future; }