From 11a346ef2b8ff156d0a926c97b5a09dadaa4a6a9 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 25 Jan 2018 09:44:34 +0100 Subject: [PATCH] Polishing. Adjust generics and wording in reactive Template API. --- .../authentication/ReactiveSessionManager.java | 2 +- .../vault/core/ReactiveVaultOperations.java | 4 ++-- .../vault/core/ReactiveVaultTemplate.java | 4 ++-- src/main/asciidoc/new-features.adoc | 2 +- .../asciidoc/reference/reactive-template.adoc | 15 ++++++++------- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/ReactiveSessionManager.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ReactiveSessionManager.java index aa49aedb..eb901518 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/ReactiveSessionManager.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ReactiveSessionManager.java @@ -30,7 +30,7 @@ import org.springframework.vault.support.VaultToken; * * @author Mark Paluch * @see CachingVaultTokenSupplier - * @see VaultTokenSupplier + * @see ReactiveLifecycleAwareSessionManager * @since 2.0 */ public interface ReactiveSessionManager extends VaultTokenSupplier { diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java index fcad1c0b..c4532b60 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java @@ -114,7 +114,7 @@ public interface ReactiveVaultOperations { * {@link org.springframework.web.reactive.function.client.WebClient}. */ > T doWithVault( - Function clientCallback) throws VaultException, + Function clientCallback) throws VaultException, WebClientException; /** @@ -129,6 +129,6 @@ public interface ReactiveVaultOperations { * {@link org.springframework.web.reactive.function.client.WebClient}. */ > T doWithSession( - Function sessionCallback) throws VaultException, + Function sessionCallback) throws VaultException, WebClientException; } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java index 15c50392..3bc5ea24 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java @@ -170,7 +170,7 @@ public class ReactiveVaultTemplate implements ReactiveVaultOperations { @Override @SuppressWarnings("unchecked") public > T doWithVault( - Function clientCallback) throws VaultException, + Function clientCallback) throws VaultException, WebClientException { Assert.notNull(clientCallback, "Client callback must not be null"); @@ -186,7 +186,7 @@ public class ReactiveVaultTemplate implements ReactiveVaultOperations { @Override @SuppressWarnings("unchecked") public > T doWithSession( - Function sessionCallback) throws VaultException, + Function sessionCallback) throws VaultException, WebClientException { Assert.notNull(sessionCallback, "Session callback must not be null"); diff --git a/src/main/asciidoc/new-features.adoc b/src/main/asciidoc/new-features.adoc index 5294cade..581d2614 100644 --- a/src/main/asciidoc/new-features.adoc +++ b/src/main/asciidoc/new-features.adoc @@ -5,7 +5,7 @@ === What's new in Spring Vault 2.0 * Authentication steps DSL to <>. -* Reactive Vault client via `ReactiveVaultOperations`. +* <> via `ReactiveVaultOperations`. * <> based on Spring Data KeyValue. * Transit batch encrypt and decrypt support. * Policy management for policies stored as JSON. diff --git a/src/main/asciidoc/reference/reactive-template.adoc b/src/main/asciidoc/reference/reactive-template.adoc index 748cdf2d..e0e45a24 100644 --- a/src/main/asciidoc/reference/reactive-template.adoc +++ b/src/main/asciidoc/reference/reactive-template.adoc @@ -18,9 +18,10 @@ too slow the data repository can also slow down or stop completely until network Spring Vault's reactive client support is built on top of <> and Spring's functional `WebClient` via Reactor Netty, which features a fully non-blocking, event-driven HTTP client. -It exposes `VaultTokenSupplier` as supplier of `VaultToken` to authenticate HTTP requests and `ReactiveVaultOperations` -as the primary entry point. The core configuration of `VaultEndpoint`, `ClientOptions` and -<> are reused across the various client implementation. +It exposes `VaultTokenSupplier` as supplier of `VaultToken` to authenticate HTTP requests +and `ReactiveVaultOperations` as the primary entry point. The core configuration of +`VaultEndpoint`, `ClientOptions` and <> are reused across the +various client implementation. The class `ReactiveVaultTemplate`, located in the package `org.springframework.vault.core`, is the central class of the Spring's reactive Vault support providing a rich feature set to @@ -112,8 +113,8 @@ The reactive client requires a non-blocking token supplier whose contract is def in `VaultTokenSupplier`. Tokens can be static or obtained through a <>. Vault login should not occur on each authenticated Vault interaction but -must be reused throughout a session. This aspect is handled by a -session manager implementing `VaultTokenSupplier`. +the session token should be kept across a session. This aspect is handled by a +session manager implementing `ReactiveSessionManager`, such as `ReactiveLifecycleAwareSessionManager`. [[vault.core.reactive.executioncallback]] == Execution callbacks @@ -128,10 +129,10 @@ to perform uncommon operations that we've not exposed as methods on `ReactiveVau Here is a list of execute callback methods. -* ` T` *doWithVault* `(Function clientCallback)` Composes a reactive +* ` T` *doWithVault* `(Function clientCallback)` Composes a reactive sequence the given `WebClient`, allows to interact with Vault without a session context. -* ` T` *doWithSession* `(Function clientCallback)` Composes a reactive +* ` T` *doWithSession* `(Function clientCallback)` Composes a reactive sequence the given `WebClient`, allows to interact with Vault in an authenticated session. Here is an example that uses the callback to initialize Vault: