Move examples to a folder in tests.

Add details to README.
Make constants public.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
This commit is contained in:
Max Lambrecht 2020-05-07 09:03:42 -03:00
parent 4e35b003fc
commit 9867c032cf
6 changed files with 30 additions and 31 deletions

View File

@ -38,7 +38,7 @@ Supplier of accepted SPIFFE IDs list can be provided as part of the `SslContextO
SSLContext sslContext = SpiffeSslContextFactory.getSslContext(sslContextOptions); SSLContext sslContext = SpiffeSslContextFactory.getSslContext(sslContextOptions);
``` ```
See [HttpsClient example](src/main/java/spiffe/provider/examples/HttpsClient.java) that defines a Supplier for providing See [HttpsClient example](src/test/java/spiffe/provider/examples/mtls/HttpsClient.java) that defines a Supplier for providing
the list of SPIFFE IDs from a file. the list of SPIFFE IDs from a file.
## Plug Java SPIFFE Provider into Java Security ## Plug Java SPIFFE Provider into Java Security
@ -53,6 +53,11 @@ security.provider.<n>=<className>
This declares a provider, and specifies its preference order n. This declares a provider, and specifies its preference order n.
### Copy the JAR to the JVM extensions
For installing the JAR file containing the provider classes as a bundled extension in the java platform,
copy build/libs/spiffe-provider-<version>-all.jar to <java-home>/jre/lib/ext
#### Register the SPIFFE Provider #### Register the SPIFFE Provider
You can extend and override the master security properties file. You can extend and override the master security properties file.
@ -84,13 +89,6 @@ To pass your custom security properties file through the command line via system
-Djava.security.properties=<path to java.security> -Djava.security.properties=<path to java.security>
``` ```
For example, it can be passed in the `JAVA_OPTS` used by the Tomcat's startup script:
```
$ export JAVA_OPTS="$JAVA_OPTS -Djava.security.properties=java.security"
$ ./catalina.sh run
```
The properties defined in your custom properties file will override the properties in the master file. The properties defined in your custom properties file will override the properties in the master file.
### Configure Workload API Socket Endpoint ### Configure Workload API Socket Endpoint

View File

@ -1,24 +1,31 @@
package spiffe.provider; package spiffe.provider;
/** /**
* Constants to be used in the context of the SPIFFE Provider * SPIFFE Provider constants
*/ */
class SpiffeProviderConstants { public class SpiffeProviderConstants {
/** /**
* Security property to get the list of accepted SPIFFE IDs. * Security property to get the list of accepted SPIFFE IDs.
* This property is read in the java.security file * This property is read in the java.security file
*/ */
static final String SSL_SPIFFE_ACCEPT_PROPERTY = "ssl.spiffe.accept"; public static final String SSL_SPIFFE_ACCEPT_PROPERTY = "ssl.spiffe.accept";
// the name of this Provider implementation /**
static final String PROVIDER_NAME = "Spiffe"; * The name of this Provider implementation
*/
public static final String PROVIDER_NAME = "Spiffe";
// the algorithm name for the KeyStore and TrustStore /**
static final String ALGORITHM = "Spiffe"; * The algorithm name for the KeyStore and TrustStore
*/
public static final String ALGORITHM = "Spiffe";
// alias used by the SpiffeKeyStore /**
static final String DEFAULT_ALIAS = "Spiffe"; * Alias used by the SpiffeKeyStore
*/
public static final String DEFAULT_ALIAS = "Spiffe";
private SpiffeProviderConstants() {} private SpiffeProviderConstants() {
}
} }

View File

@ -1,4 +1,4 @@
package spiffe.provider.examples; package spiffe.provider.examples.mtls;
import lombok.val; import lombok.val;
import spiffe.exception.SocketEndpointAddressException; import spiffe.exception.SocketEndpointAddressException;
@ -6,6 +6,7 @@ import spiffe.exception.X509SourceException;
import spiffe.provider.SpiffeSslContextFactory; import spiffe.provider.SpiffeSslContextFactory;
import spiffe.provider.SpiffeSslContextFactory.SslContextOptions; import spiffe.provider.SpiffeSslContextFactory.SslContextOptions;
import spiffe.spiffeid.SpiffeId; import spiffe.spiffeid.SpiffeId;
import spiffe.spiffeid.SpiffeIdUtils;
import spiffe.workloadapi.X509Source; import spiffe.workloadapi.X509Source;
import spiffe.workloadapi.X509Source.X509SourceOptions; import spiffe.workloadapi.X509Source.X509SourceOptions;
@ -13,15 +14,11 @@ import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.SSLSocketFactory;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.security.KeyManagementException; import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.List; import java.util.List;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* Example of a simple HTTPS Client backed by the Workload API to get the X.509 Certificates * Example of a simple HTTPS Client backed by the Workload API to get the X.509 Certificates
@ -76,12 +73,9 @@ public class HttpsClient {
} }
static List<SpiffeId> listOfSpiffeIds() { static List<SpiffeId> listOfSpiffeIds() {
Path path = Paths.get("java-spiffe-provider/src/main/java/spiffe/provider/examples/spiffeIds.txt"); try {
try (Stream<String> lines = Files.lines(path)) { return SpiffeIdUtils.getSpiffeIdListFromFile(Paths.get("java-spiffe-provider/src/test/java/spiffe/provider/examples/mtls/spiffeIds.txt"));
return lines } catch (IOException e) {
.map(SpiffeId::parse)
.collect(Collectors.toList());
} catch (Exception e) {
throw new RuntimeException("Error getting list of spiffeIds", e); throw new RuntimeException("Error getting list of spiffeIds", e);
} }
} }

View File

@ -1,4 +1,4 @@
package spiffe.provider.examples; package spiffe.provider.examples.mtls;
import lombok.val; import lombok.val;
import spiffe.exception.SocketEndpointAddressException; import spiffe.exception.SocketEndpointAddressException;

View File

@ -1,4 +1,4 @@
package spiffe.provider.examples; package spiffe.provider.examples.mtls;
import lombok.extern.java.Log; import lombok.extern.java.Log;
import spiffe.internal.CertificateUtils; import spiffe.internal.CertificateUtils;