private void redirectPost(EthereumAccount ethereumAccount, String uri, BigInteger nonce) { this.webClient .post() .uri(uri) .contentType(MediaType.APPLICATION_JSON_UTF8) .retrieve() .onStatus(HttpStatus::is4xxClientError, clientResponse -> clientResponse .bodyToMono(ByteArrayResource.class) .map(ByteArrayResource::getByteArray) .map(String::new) .map(ClientResponseException::new) ) .onStatus(HttpStatus::is5xxServerError, clientResponse -> clientResponse .bodyToMono(ByteArrayResource.class) .map(ByteArrayResource::getByteArray) .map(String::new) .map(ClientResponseException::new) ) .bodyToMono(String.class) .doOnSuccess(faucetResponseDto -> ethereumAccount.setNonce(null != nonce?nonce:BigInteger.ZERO)) .doOnError(RuntimeException::new) .block(); }
private void redirectPost(BitcoinAccount bitcoinAccount, String uri) { this.webClient .post() .uri(uri) .contentType(MediaType.APPLICATION_JSON_UTF8) .retrieve() .onStatus(HttpStatus::is4xxClientError, clientResponse -> clientResponse .bodyToMono(ByteArrayResource.class) .map(ByteArrayResource::getByteArray) .map(String::new) .map(ClientResponseException::new) ) .onStatus(HttpStatus::is5xxServerError, clientResponse -> clientResponse .bodyToMono(ByteArrayResource.class) .map(ByteArrayResource::getByteArray) .map(String::new) .map(ClientResponseException::new) ) .bodyToMono(String.class) .doOnSuccess(result -> this.addUtxo(bitcoinAccount, result)) .doOnError(RuntimeException::new) .block(); }
/** * Revoke a {@link VaultToken}. * * @param token the token to revoke, must not be {@literal null}. */ protected Mono<Void> revoke(VaultToken token) { return webClient.post().uri("auth/token/revoke-self").headers(httpHeaders -> { httpHeaders.addAll(VaultHttpHeaders.from(token)); }).retrieve().bodyToMono(String.class).then() .onErrorResume(WebClientResponseException.class, e -> { logger.warn(format("Could not revoke token", e)); return Mono.empty(); }).onErrorResume(Exception.class, e -> { logger.warn("Could not revoke token", e); return Mono.empty(); }).then(); }
.retrieve() .onStatus(HttpStatus::is4xxClientError, clientResponse -> clientResponse .bodyToMono(ByteArrayResource.class)
.post() .uri(this.url, address, new BigDecimal("1000000000000000000")) .retrieve() .onStatus(HttpStatus::is4xxClientError, clientResponse -> clientResponse .bodyToMono(ByteArrayResource.class)
private Mono<TokenWrapper> doRenew(TokenWrapper tokenWrapper) { Mono<VaultResponse> exchange = webClient .post() .uri("auth/token/renew-self") .headers( httpHeaders -> httpHeaders.putAll(VaultHttpHeaders .from(tokenWrapper.token))).retrieve() .bodyToMono(VaultResponse.class); return exchange .flatMap(response -> { LoginToken renewed = LoginTokenUtil.from(response.getRequiredAuth()); if (!isExpired(renewed)) { return Mono .just(new TokenWrapper(renewed, tokenWrapper.revocable)); } if (logger.isDebugEnabled()) { Duration validTtlThreshold = getRefreshTrigger() .getValidTtlThreshold(renewed); logger.info(String .format("Token TTL (%s) exceeded validity TTL threshold (%s). Dropping token.", renewed.getLeaseDuration(), validTtlThreshold)); } else { logger.info("Token TTL exceeded validity TTL threshold. Dropping token."); } dropCurrentToken(); return EMPTY; }); }
private Mono<Object> doHttpRequest(HttpRequestNode<Object> step, Object state) { HttpRequest<Object> definition = step.getDefinition(); HttpEntity<?> entity = getEntity(definition.getEntity(), state); RequestBodySpec spec; if (definition.getUri() == null) { spec = webClient.method(definition.getMethod()).uri( definition.getUriTemplate(), (Object[]) definition.getUrlVariables()); } else { spec = webClient.method(definition.getMethod()).uri(definition.getUri()); } for (Entry<String, List<String>> header : entity.getHeaders().entrySet()) { spec = spec.header(header.getKey(), header.getValue().get(0)); } if (entity.getBody() != null && !entity.getBody().equals(Undefinded.INSTANCE)) { return spec.syncBody(entity.getBody()).retrieve() .bodyToMono(definition.getResponseType()); } return spec.retrieve().bodyToMono(definition.getResponseType()); }