Commit Graph

147 Commits

Author SHA1 Message Date
Max Lambrecht 3549c666a0 Improving test coverage of core module. Some refactors to improve code quality and testability.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-14 12:22:46 -03:00
Max Lambrecht f47e48f684 Minor amendments.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-09 09:12:24 -03:00
Max Lambrecht d310d7bbee Adding fetchJwtSvid method not requiring subject as parameter.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-06 16:21:06 -03:00
Max Lambrecht db4e78616e Minor improve to exception message.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-06 10:47:27 -03:00
Max Lambrecht e994ede993 Add MacOS support.
Amendments in javadocs.
Other minor changes.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-04 09:57:49 -03:00
Max Lambrecht fee4cc1b91 Add reference to JWT third library.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-02 15:42:47 -03:00
Max Lambrecht 35e85cee99 Minor refactors and documentation clarifying the watch methods in WorkloadApiClient.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-02 11:39:02 -03:00
Max Lambrecht 58b36687b9 Refactor: extract WorkloadApiClient interface. Improving code and testing.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-01 13:29:41 -03:00
Max Lambrecht 9e592c1d36 Adding validation in ExponentialBackoffPolicy to prevent overflows
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-07-01 09:51:21 -03:00
Max Lambrecht 7b61cb8c47 Addressing PR comments:
- refactors to replace strings by enums
- improve code readability
- add and clarify documentation
- improve and fix logic in spiffe id parsing
- rename classes

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-30 14:19:07 -03:00
Max Lambrecht 167efbac89 Fixing typos
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-29 13:41:08 -03:00
Max Lambrecht cabcb56134 Add volatile to closed flags
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-29 12:06:33 -03:00
Max Lambrecht 14fbae8fa2 Refactoring WorkloadApiClient to reduce complexity.
Addressing code style issues.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-26 15:34:25 -03:00
Max Lambrecht 7268c54a28 Fixing checkstyle issues.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-26 14:55:54 -03:00
Max Lambrecht 3e81bee7ff Fixing checkstyle issues.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-26 13:23:53 -03:00
Max Lambrecht 81584a90fb Refactoring and completing javadocs.
Rename property to improve clarity.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-24 15:14:16 -03:00
Max Lambrecht 7d11db4944 Addressing PR comments:
- refactor methods for creating JwtSource and X509Source instances
- completing and clarifying javadocs

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-24 14:09:19 -03:00
Max Lambrecht 0005bd5a1c Addressing PR comments:
- rename enum to improve clarity
- add missing validations to socket address parsing
- add test scenarios for address parsing
- improve Address javadoc to use the language of the SPIFFE spec
- some minor refactors

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-24 11:43:53 -03:00
Max Lambrecht 96d660ad3a Refactor string literals by enum.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-23 19:12:29 -03:00
Max Lambrecht 48aa4e6308 Removing SpiffeId and TrustDomain limit validations.
Improving javadocs.
Removing unused code.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-23 15:00:59 -03:00
Max Lambrecht c5f85756fc Making JWT and X509 SVID entities unmodifiable.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-23 12:57:26 -03:00
Max Lambrecht cbca3a1ec2 Refactor extracting methods to improve readability.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-23 12:46:11 -03:00
Max Lambrecht 5221f838eb Amendments in javadocs and README.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-23 11:28:51 -03:00
Max Lambrecht ca5511eb91 Addressing PR comments:
- refactor acceptedSpiffeIds from List to Set
- refactor tests
- renaming methods to improve clarity
- amendments in javadocs

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-23 11:26:00 -03:00
Max Lambrecht dbfb09f0f8 Refactor private key algorithm parameter. Create enum.
Other minor changes.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-23 09:25:59 -03:00
Max Lambrecht 4e1d0fb8c8 Fix trust domain host validation.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-22 16:28:52 -03:00
Max Lambrecht 7d3adfe7cf Rename enum and add comment.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-22 16:18:59 -03:00
Max Lambrecht c92c90e7ea Addressing PR comments:
- replace private key format and algorithm guessing by parameters
- refactor a few ifs to switch case
- add spiffeid and trust domain validations and tests
- remove all imports wildcards
- other minor changes to improve quality

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-22 16:08:17 -03:00
Max Lambrecht 538be3fa09 Minor typo fix.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-19 17:34:15 -03:00
Max Lambrecht fbbf17d0a3 Minor typo and grammar fixes.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-19 15:14:30 -03:00
Max Lambrecht 57076ef4f5 java-spiffe-provider: Code style improvements.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-19 14:32:32 -03:00
Max Lambrecht 48564f1193 java-spiffe-core: Code style improvements.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-19 11:58:21 -03:00
Max Lambrecht f967aa81a6 Fixing javadoc related warnings.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-18 11:29:39 -03:00
Max Lambrecht db57253657 Add javadoc and source jars generation. Fixing errors and warnings.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-18 11:03:06 -03:00
Max Lambrecht 2153452545 Rename root package to 'io.spiffe'.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-18 10:18:08 -03:00
Max Lambrecht e124009250 Minor amendments in javadoc comments.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-15 13:47:43 -03:00
Max Lambrecht d00c6072bf Adding and improving javadocs. Removing unused code.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-15 11:18:16 -03:00
Max Lambrecht f3b2a411fc Addressing PR comments: improving names, javadoc amendments, code refactors.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-15 10:18:48 -03:00
Max Lambrecht 5c1d2762e7 Add javax.annotation-api dependency as workaround for Java 11+ versions.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-13 14:48:33 -03:00
Max Lambrecht 53244bb499 Addressing PR comments: replacing grpc netty dependencies by the recommended grpc-netty-shaded.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-13 13:15:26 -03:00
Max Lambrecht 874c7a5a88 Adding configuration for accepting any SPIFFE ID.
Amend X509 wordings.
Adding documentation in README.
Improvements.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-12 15:59:08 -03:00
Max Lambrecht 46d6fc0ade Fix code issues.
Improve README.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-12 08:06:07 -03:00
Max Lambrecht df234b5255 minor readme amendments
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-11 17:14:10 -03:00
Max Lambrecht 00eb86949f Addressing PR comments.
Adding documentation.
Amendments in READMEs and javadoc comments.
Some refactors to improve code and clarity.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-11 17:09:55 -03:00
Max Lambrecht 6d42e48861 Add all supported java versions to travis build.
Extract common string versions to constants in build.gradle.
Update some dependency version.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-11 11:35:34 -03:00
Max Lambrecht af2ee3d27b Move modules versions to a single parent version to simplify versioning.
Add gradle task to copy generated jars artifacts to a common folder.
Add travis config to deploy the jars.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-10 14:43:13 -03:00
Max Lambrecht 91eb49bd8e Update grpc, netty and jwt-jose dependencies
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-09 14:01:07 -03:00
Max Lambrecht ea0d363c68 Refactor BundleSource interfaces to have a single parameterized interface for both X509 and JWT bundles.
Minor code improvements.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-08 14:56:51 -03:00
Max Lambrecht d68c17caaa Moving class to avoid circular references.
Rename type parameters.
Improve readability.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-08 14:37:02 -03:00
Max Lambrecht 28ad4c0c0c Improve Private and Public Keys verification.
Add tests for keys verification.
Resolve TODO in interface documentation.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-08 14:01:37 -03:00
Max Lambrecht cf761c5bdf Java Spiffe Helper implementation
Refactors
Tests
README improvements

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-06-04 10:19:19 -03:00
Max Lambrecht 5b27a2fc86 Implementing
- JWT functionality in Workload API client.
- JWT Source.
- Fake Workload API.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-28 11:16:01 -03:00
Max Lambrecht cd64eb7966 Adding test to cover EC private key generation.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-22 09:53:30 -03:00
Max Lambrecht ef2cdafab9 Adding utility methods for generating x509 certificates for testing purposes.
Adding jacoco test coverage report plugin.
Adding and improving tests for X509SvidValidator and CertificateUtils.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-22 09:31:32 -03:00
Max Lambrecht ef4dbf86c5 Adding tests for BackoffPolicy and RetryHandler.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-20 15:14:19 -03:00
Max Lambrecht 0853442026 Adding tests.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-20 14:09:30 -03:00
Max Lambrecht 87c8aadeba Refactoring Algorithm and Family as enums.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-20 13:51:10 -03:00
Max Lambrecht 21514c7a16 Renaming Algorithm class
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-20 13:23:39 -03:00
Max Lambrecht e160708d4e Refactoring JWT SVID and bundle.
Replace JWT library using nimbus for both JWT and JOSE bundles.
Refactoring tests
Adding tests for improving coverage.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-20 13:17:19 -03:00
Max Lambrecht 8c5384ee3b Implementing JWT bundle and bundle set.
Refactors to X509 bundle and set.
Adding tests.
Adding library for processing JOSE JWK bundles.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-19 13:07:07 -03:00
Max Lambrecht a203cf450f Avoid warning Unknown channel option 'SO_KEEPALIVE' on Mac
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-18 13:58:33 -03:00
Max Lambrecht a58aa9925b Avoid warning Unknown channel option 'SO_KEEPALIVE'
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-18 12:51:02 -03:00
Max Lambrecht 11d00e191c Adding tests to improve coverage for X509Svid, X509SvidValidator, X509BundleSet, SpiffeId, JwtSvid.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-18 12:11:47 -03:00
Max Lambrecht fa50d55dd0 Change exception thrown by validation method and adding tests
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-18 09:00:54 -03:00
Max Lambrecht ec681cbf99 Add defensive copy to prevent vulnerability
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-17 09:54:43 -03:00
Max Lambrecht 3ef62e0812 Adding and refactoring tests
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-17 09:42:19 -03:00
Max Lambrecht 5abd112c58 X509 SVID: adding validations and tests
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-16 14:10:33 -03:00
Max Lambrecht 8d9bbc065a JWT SVID implementation
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-16 07:52:32 -03:00
Max Lambrecht 12329d924d Adding method to TrustDomain and test
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-13 11:08:25 -03:00
Max Lambrecht 588da2cd55 Adding documentation
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-08 09:44:53 -03:00
Max Lambrecht 6565ea1029 Minor change
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-08 08:02:08 -03:00
Max Lambrecht 19bf9730b7 Remove unnecessary method
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-08 07:58:38 -03:00
Max Lambrecht f8a176dc20 Change method name to improve clarity.
Fix build warning.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-08 07:36:03 -03:00
Max Lambrecht 4e35b003fc Update workload.proto.
Validate that the X.509 context has both the svid and the bundles in the X509 context watcher.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-06 15:56:57 -03:00
Max Lambrecht 8de0b766ab Adding extra method to create X509 source, improving some javadoc comments.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-06 15:36:12 -03:00
Max Lambrecht 29daad1c5b Adding timeout to X509Source new method.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-06 11:16:20 -03:00
Max Lambrecht 8027b39298 Minor change: making field final
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-04 08:59:48 -03:00
Max 89380590b8 Configure workload api client and netty channel with the ExecutorService and shutdown the underlying channel properly.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-04 08:56:58 -03:00
Max Lambrecht b0bac0c29a Setting the defaults for the BackoffPolicy in the builder constructor
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-01 08:44:46 -03:00
Max Lambrecht 30c0ddb5e2 Minor fix in method signature
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-05-01 06:52:42 -03:00
Max 7d12743fb5 Adding backoff retry to watchX509Context.
Changing X509ContextException and X509ContextException to make them checked.
Address multiple PR comments.
Adding tests to Address and TrustDomain.

Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-30 09:33:46 -03:00
Max 8e64bb63a0 Improve methods to avoid unnecessary extra get operation
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-28 12:26:08 -03:00
Max Lambrecht 96b27c8277 Amending names and comments
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-27 06:47:28 -03:00
Max Lambrecht 571dd3c5d4 Minor change in logging
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-27 06:32:33 -03:00
Max Lambrecht c26f0339a6 Delete unused classes
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-27 06:18:03 -03:00
Max Lambrecht bf6053c18c Process federated bundles from X509Context update
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-26 16:31:04 -03:00
Max Lambrecht ecabc0f288 Minor fixes
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-26 15:16:11 -03:00
Max Lambrecht 44cda6e809 Refactor error handling: use Exceptions instead of Result wrapper type
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-26 13:58:21 -03:00
Max Lambrecht 8e06cb12d7 Refactor: changing name jwtKeys and x509Roots by jwtAuthorities and x509Authorities
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-23 11:42:18 -03:00
Max Lambrecht 928b075661 Moving and cleaning dependencies
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-23 07:39:55 -03:00
Max Lambrecht 219a2e2e71 Refactoring SSL Context factory. Refactoring WorkloadAPIClient and X509Source
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-22 10:01:55 -03:00
Max Lambrecht 2cccc1c988 Refactoring Results in multiple methods. Refactoring the X509Source config.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-21 13:01:26 -03:00
Max Lambrecht 15978d8313 Add comments to provide more details about the X509Source
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-20 12:14:35 -03:00
Max Lambrecht 07169bf411 Add Exception to error result
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-20 11:49:45 -03:00
Max Lambrecht 5eb49938ba Make FetchJwtSvid return a Result
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-20 11:26:50 -03:00
Max Lambrecht 3e05e37b10 Changing return value from Optional to Result. Other refactors. Improving comments.
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-20 10:56:36 -03:00
Max Lambrecht 43f9d79e8c [WIP]-Define v2 interface, refactor in modules
Signed-off-by: Max Lambrecht <maxlambrecht@gmail.com>
2020-04-10 14:21:27 -03:00