66 Commits

Author SHA1 Message Date
Mark Paluch
b0f779dff2 [maven-release-plugin] prepare for next development iteration 2020-12-10 11:42:00 +01:00
Mark Paluch
c578a61bb8 [maven-release-plugin] prepare release 2.2.3.RELEASE 2020-12-10 11:41:59 +01:00
Mark Paluch
40b3c499e8 [maven-release-plugin] prepare for next development iteration 2020-02-26 13:48:56 +01:00
Mark Paluch
0098cec299 [maven-release-plugin] prepare release 2.2.2.RELEASE 2020-02-26 13:48:56 +01:00
Mark Paluch
5a25a81599 [maven-release-plugin] prepare for next development iteration 2020-01-16 09:05:48 +01:00
Mark Paluch
44b8e8fd49 [maven-release-plugin] prepare release 2.2.1.RELEASE 2020-01-16 09:05:47 +01:00
Mark Paluch
ec59c80538 Prepare for next development iteration
See gh-497.
2019-11-06 10:31:30 +01:00
Mark Paluch
d26aad890a [maven-release-plugin] prepare release 2.2.0.RELEASE
See gh-#497.
2019-11-06 10:12:38 +01:00
Mark Paluch
1ffcc79389 [maven-release-plugin] prepare for next development iteration
See gh-495.
2019-10-24 11:46:36 +02:00
Mark Paluch
ceb75dd57b [maven-release-plugin] prepare release 2.2.0.RC1
See gh-495.
2019-10-24 11:46:36 +02:00
Mark Paluch
5eec588091 [maven-release-plugin] prepare for next development iteration 2019-09-12 15:08:07 +02:00
Mark Paluch
073d0bddc2 [maven-release-plugin] prepare release 2.2.0.M1 2019-09-12 15:08:07 +02:00
Mark Paluch
d642b32744 Add Kotlin Coroutines extensions for ReactiveVaultOperations.
Closes gh-472.
2019-09-12 10:09:34 +02:00
Mark Paluch
f5a969bc27 Add support for PCF authentication.
We now support PCF authentication leveraging PCF's App and Container Identity Assurance.

Instance certificate and key default to CF_INSTANCE_CERT respective CF_INSTANCE_KEY environment variables.

PcfAuthenticationOptions options = PcfAuthenticationOptions.builder().role(…).build();
PcfAuthentication authentication = new PcfAuthentication(options, restOperations);

VaultToken token = authentication.login();

PcfAuthentication requires BouncyCastle for RSA-PSS signing.

Update KubernetesJwtSupplier and KubernetesServiceAccountTokenFile to inherit from generic Resource-based credential suppliers.

Closes gh-440.
2019-09-05 11:38:30 +02:00
Mark Paluch
1846454b86 Remove Lombok usage.
Closes gh-444.
2019-06-30 23:25:08 +02:00
Mark Paluch
4c9d67dac7 Migrate tests to use JUnit 5.
Use test annotations from JUnit Jupiter. Migrate VaultRule to extension. Migrate Version-based assumptions to @RequiresVaultVersion.

Closes gh-443.
2019-06-30 14:13:32 +02:00
Mark Paluch
bcb6090a01 Add Kotlin extensions.
We now provide extensions for VaultOperations, ReactiveVaultOperations, VaultKeyValueOperations, VaultVersionedKeyValueOperations, and VaultWrappingOperations to leverage reified type parameters with read(…) methods.

Closes gh-442.
2019-06-30 00:03:05 +02:00
Mark Paluch
22ca10c441 Add support for JettyClientHttpConnector.
We now support Jetty's reactive HttpClient next to Reactor Netty if jetty-reactive-httpclient is available on the class path.

Closes gh-438.
2019-06-28 17:14:55 +02:00
Spring Operator
6d776b1ed2 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://maven.apache.org/xsd/assembly-1.1.2.xsd with 1 occurrences migrated to:
  https://maven.apache.org/xsd/assembly-1.1.2.xsd ([https](https://maven.apache.org/xsd/assembly-1.1.2.xsd) result 200).
* http://maven.apache.org/xsd/maven-4.0.0.xsd with 2 occurrences migrated to:
  https://maven.apache.org/xsd/maven-4.0.0.xsd ([https](https://maven.apache.org/xsd/maven-4.0.0.xsd) result 200).
* http://maven.apache.org/maven-v4_0_0.xsd with 2 occurrences migrated to:
  https://maven.apache.org/maven-v4_0_0.xsd ([https](https://maven.apache.org/maven-v4_0_0.xsd) result 301).

# Ignored
These URLs were intentionally ignored.

* http://maven.apache.org/POM/4.0.0 with 8 occurrences
* http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 with 2 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 5 occurrences

Original pull request: #393.
2019-03-21 10:37:11 +01:00
Mark Paluch
e7c9f01d38 pgrade to Lombok 1.18.6
Closes gh-386.
2019-02-27 14:03:35 +01:00
Mark Paluch
a033079a1a [maven-release-plugin] prepare for next development iteration
See gh-314.
2018-10-02 09:48:35 +02:00
Mark Paluch
ea96b1c067 [maven-release-plugin] prepare release 2.1.0.RELEASE
See gh-314.
2018-10-02 09:48:26 +02:00
Mark Paluch
fbba0a7c13 [maven-release-plugin] prepare for next development iteration 2018-09-07 15:52:16 +02:00
Mark Paluch
04ea391e31 [maven-release-plugin] prepare release 2.1.0.RC1 2018-09-07 15:52:16 +02:00
Mark Paluch
4b5e73d760 Upgrade Maven plugins to enable builds on Java 11.
Closes gh-302.
2018-09-07 11:12:24 +02:00
Mark Paluch
6a4dd3e84f Adapt to rewritten Reactor Netty.
Adapt to changes in Reactor Netty and Spring Framework 5.1 RC1.

Disable ClientCertificateAuthenticationOperatorIntegrationTests as HttpClient (Reactor Netty) has issues with multiple SSL configurations.

Closes gh-281.
2018-08-02 16:02:42 +02:00
Mark Paluch
be860b2e90 [maven-release-plugin] prepare for next development iteration 2018-08-01 12:06:19 +02:00
Mark Paluch
879d2c905d [maven-release-plugin] prepare release 2.1.0.M1 2018-08-01 12:06:19 +02:00
Mark Paluch
1711479dc0 Add support for GCP authentication.
We now provide GCP IAM and GCP GCE authentication support for service accounts based on JSON Web Token.
GCP IAM requires Google Cloud Java SDK for credential and IAM interaction.

  GcpIamAuthenticationOptions options = GcpIamAuthenticationOptions.builder()
      .role(…).credential(GoogleCredentials.getApplicationDefault()).build();

  GcpIamAuthentication authentication = new GcpIamAuthentication(options, restOperations());

Closes gh-126.
2018-03-05 16:09:41 +01:00
Mark Paluch
1dfd83f5be [maven-release-plugin] prepare for next development iteration
See gh-198.
2018-02-20 09:44:00 +01:00
Mark Paluch
4b1061d153 [maven-release-plugin] prepare release 2.0.0.RELEASE
See gh-198.
2018-02-20 09:43:14 +01:00
Mark Paluch
8f19127584 [maven-release-plugin] prepare for next development iteration 2018-01-25 09:48:54 +01:00
Mark Paluch
a94cbc15ae [maven-release-plugin] prepare release 2.0.0.RC2 2018-01-25 09:48:53 +01:00
Mark Paluch
28ff17d4f8 Add VaultBytesEncryptor and VaultBytesKeyGenerator.
We now provide a Spring Security integration for Vault transit-based BytesEncryptor and BytesKeyGenerator.

VaultOperations operations = …;
VaultBytesKeyGenerator generator = new VaultBytesKeyGenerator(operations);

byte[] key = generator.generateKey();

VaultTransitOperations transit = …;
VaultBytesEncryptor encryptor = new VaultBytesEncryptor(transit, "my-key-name");

byte[] ciphertext = encryptor.encrypt(plaintext);
byte[] decrypted = encryptor.decrypt(ciphertext);

Closes gh-187.
2018-01-22 12:11:05 +01:00
Mark Paluch
b122d7510c [maven-release-plugin] prepare for next development iteration
See gh-173.
2017-11-15 08:22:50 +01:00
Mark Paluch
829e6ffc88 [maven-release-plugin] prepare release 2.0.0.RC1
See gh-173.
2017-11-15 08:22:50 +01:00
Mark Paluch
d1a778e6a7 [maven-release-plugin] prepare for next development iteration
See gh-155.
2017-10-06 08:05:55 +02:00
Mark Paluch
e7986350bd [maven-release-plugin] prepare release 2.0.0.M3
See gh-155.
2017-10-06 08:04:45 +02:00
Mark Paluch
4ba7566d6b Merge repository support into Spring Vault Core.
Closes gh-157.
2017-10-05 17:45:21 +02:00
Mark Paluch
209e0b2d37 Add support for policies.
We now support policy management via Vault's policy endpoint to enumerate policy names, read, write and delete policies. Policy parsing support is limited to JSON as there is no Java HCL parser.

Closes gh-10.
2017-09-27 15:54:00 +02:00
Mark Paluch
34cf9eceaf Add explicit automatic module name for Java 9.
Closes gh-141.
2017-09-21 15:00:49 +02:00
Mark Paluch
b916d4c6e7 Vault repository support.
We now support Spring Data Repositories via Spring Data's KeyValue module. Domain objects can be mapped to JSON using a custom converter and created, update, deleted and queried using the repository abstraction. Vault repositories support query derivation limited to predicates on the Id property with paging and sorting.

@Configuration
@EnableVaultRepositories
public class ApplicationConfig {

  @Bean
  public VaultTemplate vaultTemplate() {
    return new VaultTemplate(…);
  }
}

@Test
public void loadAndSave() {

	Credentials heisenberg = new Credentials();
	heisenberg.setId("heisenberg");
	heisenberg.setPassword("327215");

	vaultRepository.save(heisenberg);

	Iterable<Credentials> all = vaultRepository.findAll();
  //
}

interface CredentialsRepository extends PagingAndSortingRepository<Credentials, String> {

}

@Data
public class Credentials {

	@Id String id;
	String password;
}

GET https://localhost:8200/v1/secret/credentials/heisenberg

HTTP/1.1 200 OK
Content-Type: application/json

{
  // …
  "renewable": false,
  "lease_duration": …,
  "data": {
    "_class": "com.example.Credentials",
    "password": "327215"
  },
  // …
}

See gh-128.
2017-09-06 22:02:43 +02:00
Mark Paluch
91541cb510 [maven-release-plugin] prepare for next development iteration
See gh-116.
2017-07-27 08:19:40 +02:00
Mark Paluch
29b4f36bef [maven-release-plugin] prepare release 2.0.0.M2
See gh-116.
2017-07-27 08:19:40 +02:00
Mark Paluch
55eab1b6b9 Support AWS IAM authentication.
Spring Vault now supports AWS IAM authentication via signed HTTP requests that are executed by Vault to determine the caller (signer) identity.

AwsIamAuthentication requires AWS Java Core SDK to create the actual signature:

AwsIamAuthenticationOptions options = AwsIamAuthenticationOptions.builder()
                .credentials(new BasicAWSCredentials(…)).build();

AwsIamAuthentication auth = new AwsIamAuthentication(options, restOperations());

Closes gh-91.
2017-07-14 21:19:53 +02:00
Mark Paluch
1f5edfc3f5 Add reactive dependencies.
See gh-25.
2017-07-10 20:22:58 +02:00
Mark Paluch
017350bb42 Upgrade to Spring 5 snapshots. 2017-07-10 20:22:04 +02:00
Mark Paluch
7f93a91c36 [maven-release-plugin] prepare for next development iteration 2017-06-29 15:17:04 +02:00
Mark Paluch
7c488b216f [maven-release-plugin] prepare release 2.0.0.M1 2017-06-29 15:17:00 +02:00
Mark Paluch
6a6f8b937a Remove support for OkHttp 2.
Closes gh-85.
2017-06-29 08:01:08 +02:00