49 Commits

Author SHA1 Message Date
Julian Hjortshoj
fbc06149c0 add Eureka TLS/mTLS support
- read `ca.crt`, `tls.crt` and `tls.key` optional properties in eureka bindings
- process them into keystore and truststore, and wire up eureka client/instance properties
- place the trust-store and keystore in the `$TMPDIR` and reference them by absolute path.
- add a `pem` package for parsing and converting PEM encoded RSA keys
  and certificates. (This package may eventually be replaced by the PEM
  package in spring-boot, but not until 3.1 is the minimum supported
  boot version. The package here is copied from spring-boot but
  simplified and made Java 8 compatible.)

Co-authored-by: Dave Walter <walterda@vmware.com>
Co-authored-by: Andrew Wittrock <awittrock@vmware.com>
Co-authored-by: Matt Royal <mroyal@vmware.com>
Co-authored-by: Paul Aly <maly7; paly@vmware.com>
2023-05-08 07:32:01 -07:00
Toshiaki Maki
38691add52 Fix postgresql url in README (#81) 2022-08-22 09:29:58 -04:00
Greg Meyer
662ccbff31 Resolving documentation for redis cluster nodes. (#80)
Co-authored-by: gm2552 <meyerg@vmware.com>
2022-08-19 14:58:18 -04:00
Daniel Mikusa
f807774639 Clarify that JDBC/R2DBC generated URLs (#75)
If allowing the mapping to generate a JDBC/R2DBC URL then all three of the fields are required, the host, port and database. If even one is not set, the information will not be mapped and the default value for the property will be used.

Reference: #74

Signed-off-by: Daniel Mikusa <dmikusa@vmware.com>
2022-07-25 08:48:21 -04:00
Greg Meyer
c9fdc1e6b1 Adding logic to flex the MySQL r2dbc connection sting based on classpath (#73)
* Adding logic to flex the MySQL jdbc and r2dbc connection sting based on classpath

This PR is related to issue #72.

Co-authored-by: gm2552 <meyerg@vmware.com>
2022-06-13 11:40:59 -04:00
Daniel Garnier-Moiroux
5ab708ff04 add support for redirect-uris key for oauth2 bindings (#70) 2022-05-19 14:41:18 -04:00
Daniel Garnier-Moiroux
ac28f74c7a add support for authorization-grant-types key for oauth2 bindings (#69)
* add support for authorization-grant-types key for oauth2 bindings
* Introduce MapMapper.Source#when(Predicate<Object>)
* update readme with oauth2 -> authorization-grant-type(s)
2022-05-13 11:45:32 -04:00
Daniel Mikusa
1c417a299f Update README.md (#68)
Add new PostgreSQL properties: sqlmode, sslrootcert, and options.
2022-04-27 13:50:31 -04:00
Max Brauer
dca042dab0 Document missing OAuth2 client properties (#67) 2022-04-26 15:54:47 -04:00
Gareth Evans
5fc11caefb Adding support for SAP Hana bindings (#64)
* Add support for SAP Hana
2022-04-26 15:51:54 -04:00
Marc Becker
1e3bdce53d Mention K8s Service Binding Spec in README
Judging from comments in the [Bindings](https://github.com/spring-cloud/spring-cloud-bindings/blob/main/src/main/java/org/springframework/cloud/bindings/Bindings.java) and [Binding](https://github.com/spring-cloud/spring-cloud-bindings/blob/main/src/main/java/org/springframework/cloud/bindings/Binding.java) class the Kubernetes Service Binding Specification superseded the Cloud Native Buildpacks Binding Specification.
The library supports both but seems to view the Kubernetes Service Binding Specification as the leading specification.
I updated the README to reflect this and to avoid to lead users to the "legacy" specification.

This also avoids confusion, when being linked from the servicebinding.io's [list of libraries](https://servicebinding.io/application-developer/) to this page, however finding a different binding specification in the README.
2022-03-02 08:52:01 +01:00
Daniel Mikusa
cf11b5e886 Merge pull request #55 from cborealis/feature/activemq-artemis
Adding support for ActiveMQ Artemis
2021-08-26 21:12:40 -04:00
Daniel Mikusa
526db0d6b2 Polishing.
- Removes unnecessary log line
- Clarifies order for jdbc url vs library composed url

Signed-off-by: Daniel Mikusa <dmikusa@vmware.com>
2021-08-21 15:28:57 -04:00
Emily Casey
0debab1b2c Allow users to explicitly specify jdbc or r2dbc URLs
Previously Spring Cloud Bindings always composed spring.datasource.url from the host port and database properties. This is limiting in that it does not provide a mechanism for users to specify jdbc properties (e.g. sslMode). The PR retains the original behavior but also respects jdbc-url and r2dbc-url keys in all RDBS bindings. The explicit jdbc-url and r2dbc-url keys take precedence over the composed value.

Signed-off-by: Emily Casey <ecasey@vmware.com>
2021-08-20 17:10:20 -04:00
Alexander Schwab
cee2609022 Adding support for ActiveMQ Artemis 2021-04-16 12:41:15 +02:00
Ben Hale
04aa41a719 Doc Polishing
This change updates the docs from a previous changes.

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-11-18 10:19:01 -08:00
Ben Hale
cb048c1d98 Polishing
Signed-off-by: Ben Hale <bhale@vmware.com>
2020-08-17 16:25:44 -07:00
Ben Hale
397eed2da3 Polishing
Signed-off-by: Ben Hale <bhale@vmware.com>
2020-07-22 12:20:31 -07:00
Ben Hale
768ebe7481 Polishing
Signed-off-by: Ben Hale <bhale@vmware.com>
2020-07-22 11:33:53 -07:00
Ben Hale
60c9bcbe7e Documentation Improvements
This changes makes a bunch documentation improvements, case normalizations,
and general improvements left over from the previous addition of the
Kubernetes Service Binding support.

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-07-15 17:21:05 -07:00
Ben Hale
fe843860f7 Support Kubernetes Service Bindings
This change updates the library to support the new Kubernetes Service
Bindings[1].

[1]: https://github.com/k8s-service-bindings/spec#application-projection

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-07-14 10:52:49 -07:00
Emily Casey
e4ed9a3a76 Adds more context to ambiguous secret key names
When key names are potentially ambiguous (does this server-id refer to the vault server?) prefer longer more explicit key names. When there is no ambiguity stick with the existing shorter names.

Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-06-25 16:06:24 -04:00
Emily Casey
10ace42f07 vault: secret/method -> secret/authentication-method
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-06-23 19:10:55 -04:00
Emily Casey
b3b1b06aea Adds more Spring Cloud Vault authentication methods
* AWS_EC2
* AWS_IAM
* AZURE_MSI
* GCP_GCE
* GCP_IAM
* KUBERNETS

Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-06-23 17:51:45 -04:00
Emily Casey
5be10f2702 Reads authentication method from secret/method
Previously we used provider

Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-06-23 10:44:29 -04:00
Emily Casey
02c0c59d4b Supports Spring Cloud Vault
Adds support for the following authentication types
* APPROLE
* CERT
* CUBBYHOLE
* TOKEN

See
https://cloud.spring.io/spring-cloud-vault/reference/html/#vault.config.authentication
for more details about these authentication methods.

Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-06-19 18:11:40 -04:00
Emily Casey
c2a550e916 Adds support for Spring Security OAuth2
Autoconfigures spring.security.oauth2.* application properties. The name of the binding will become the name of the client. The name of the provider will be taken from metadata/provider.

Resolves #35

Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-06-19 12:33:37 -04:00
E Casey
d0caf31ab4 Merge pull request #44 from spring-cloud/docs/34-extension-via-factory
Documents extension via custom factory
2020-06-04 17:22:12 -04:00
Emily Casey
b254d7e518 Documents extention via custom factory
Describes how to add support for additional service types and provides
a simple example.

Resolves #34

Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-06-04 17:05:55 -04:00
Emily Casey
2b45fffefd Adds support for spring-ldap
Resolves #12

Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-06-02 19:06:12 -04:00
Emily Casey
923c2abacc Alphabetize bindings. Makes clear that config/eureka properties are specific to SCS
Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-06-02 14:20:12 -04:00
Emily Casey
bbda2549f1 Adds support for SCS config server
Adds support for Spring Cloud Services Config Server. Bindings must have kind config.

Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-06-02 14:20:12 -04:00
Emily Casey
cf71d08515 Documents r2dbc properties in README
Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-06-01 18:19:10 -04:00
Emily Casey
44cb4a1f19 Eureka Support
[resolves #27]

Adds initial eureka client support.

Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-05-18 09:49:55 -04:00
Ben Hale
6163be2aa7 ApplicationEventListeners
Previously, the implementations of the EnvironmentPostProcessors added
ApplicationEventListener to their interface as well.  These implementations
tested fine, but of course since there was no full integration test to ensure
that they were registered I forgot to add them to spring.factories.

This change adds their declarations as ApplicationEventListeners to the
spring.factories file and ensures that the logs are replayed when the
application is finished preparing.

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-15 17:27:58 -07:00
Emily Casey
3193bd9acf Wavefront Support
[resolves #37]

Also fixes failure when there is no provider in the binding metadata.

Signed-off-by: Emily Casey <ecasey@pivotal.io>
2020-05-15 16:32:39 -04:00
Ben Hale
03f17f2bd6 Polishing
Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-13 07:24:59 -07:00
Ben Hale
6885bcbd24 Kafka Support
[resolves #22]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-12 08:06:28 -07:00
Ben Hale
4e47c3f59b RabbitMQ Support
[resolves #21]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-12 06:25:37 -07:00
Ben Hale
e15d0a1b61 Neo4J
This change contributes Neo4J support.

[resolves #20]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 16:57:02 -07:00
Ben Hale
9f99fbc8fb Elasticsearch
This change adds support for Elasticsearch bindings.

[resolves #18]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 16:42:14 -07:00
Ben Hale
831d7616f6 Polishing
Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 16:23:34 -07:00
Ben Hale
05f5e5a34f Couchbase Support
This change adds support for auto-configuring Couchbase.

[resolves #17]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 16:20:29 -07:00
Ben Hale
2b4b1da636 Redis Binding
This change expands the Redis bindings to handle more properties.

[resolves #7]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 16:06:18 -07:00
Ben Hale
0416df43f7 MongoDB Binding
This change expands the MongoDB bindings to handle more properties.

[resolves #6]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 15:46:18 -07:00
Ben Hale
c9091503ef Expand Cassandra Bindings
This change expands the Cassandra bindings to handle more properties.

[resolves #5]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 11:55:54 -07:00
Ben Hale
aa6f50e5c3 Global Guard
Previously, whenever the library was included on a classpath it would attempt
to auto-configure Spring Boot.  Since part of the API can be used as a
straight library, and in that usage, auto-configuration would not be
desirable, the auto-configuration needed a global off switch.  This change
adds a global guard, disabled by default, in the
org.springframework.cloud.bindings.boot.enable System Property.

[resolves #25]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 10:42:47 -07:00
Ben Hale
de2422fdf5 Per-kind Disabling
Previously, auto-configuration of all kinds of bindings were either enabled or
disabled en-mass.  This level of granularity wasn't really appropriate in
practice as it many use-cases could be served with some bindings but not
others.  This change updates each auto-configuration to watch for a particular
key to be disabled.

[resolves #29]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 09:36:54 -07:00
Ben Hale
f3929371f9 README
This change adds a README file containing information about using the project
and the properties that are set automatically.

[resolves #2]

Signed-off-by: Ben Hale <bhale@vmware.com>
2020-05-11 08:40:04 -07:00