Commit Graph

418 Commits (v2)

Author SHA1 Message Date
Richard Körber 2b61478f13
Remove oob-01 challenge
It is not part of the ACME specs any more
2017-12-14 00:03:13 +01:00
Richard Körber 4c4cf5b5cf
Connect to Pebble via https 2017-12-06 22:55:00 +01:00
Richard Körber 827e1277ef
Use an OrderBuilder for collecting order parameters 2017-12-05 22:26:28 +01:00
Richard Körber e0673c93bd
Implement new order finalization
Replaces the "CSR first" new-order flow, see ietf-wg-acme/acme#342
2017-12-05 22:26:27 +01:00
Richard Körber e386994fe5 Fix detail key in sub-problem 2017-12-01 00:09:15 +01:00
Richard Körber d6fb218a27 Add support for sub-problems 2017-11-29 01:28:14 +01:00
Richard Körber 1eedc755ea Remove Authorization scope 2017-11-29 00:36:59 +01:00
Richard Körber ed543bc0b7 Sonar fixes 2017-11-04 13:26:41 +01:00
Richard Körber 529eb13e3f Don't fail if version.properties is unreadable
Fixes issue #42
2017-11-04 13:18:52 +01:00
Richard Körber e9a330b3a2 Avoid URI to URL conversion 2017-11-04 11:40:20 +01:00
Richard Körber 42541ac299 Accept Content-Type header with charset parameter 2017-11-02 23:19:31 +01:00
Richard Körber a32c7bac03 Do not accept contacts with multiple email addresses 2017-11-01 17:42:09 +01:00
Richard Körber f36294eabd Rename internal util package in client module
Avoids a split package in Java 9.
2017-10-07 18:08:16 +02:00
Richard Körber 2a5075dd5a Fix unit tests for Java 9 2017-10-07 18:08:04 +02:00
Richard Körber 148c98d673 Remove local truststore for Let's Encrypt servers 2017-09-20 20:58:52 +02:00
Richard Körber e15abb0ca0 Remove Pebble workarounds 2017-08-29 00:04:47 +02:00
Richard Körber b708b2f199 Build json string in order of entry appearance 2017-08-17 22:39:30 +02:00
Richard Körber f434fd70b4 Fix a style warning 2017-08-17 22:39:19 +02:00
Richard Körber 2eb59ef364 Do not use compact JWS serialization 2017-08-17 22:38:56 +02:00
Richard Körber 3ce832d83e Review URI/URL use 2017-08-13 14:18:44 +02:00
Richard Körber a30caaa664 Challenge.trigger can be re-invoked 2017-08-13 14:18:43 +02:00
Richard Körber f3735e6ec1 Add a way to revoke a certificate without account key pair 2017-08-13 14:18:43 +02:00
Richard Körber 3881669e22 Fix setting the account's key identifier 2017-08-13 14:13:56 +02:00
Richard Körber 7c88a2cdac Rename to AcmeRateLimitedException 2017-08-13 14:08:37 +02:00
Richard Körber 64abe3d96e Do not expect a response body on existing accounts 2017-07-30 15:59:07 +02:00
Richard Körber dfb40edc12 Challenge can have multiple errors 2017-07-30 15:57:58 +02:00
Richard Körber dcdf240804 Add support for only-return-existing flag 2017-07-30 15:57:44 +02:00
Richard Körber d43b16bb2c Remove pebble workaround for kid field 2017-05-31 19:31:40 +02:00
Richard Körber f852cdaecd Remove pebble workaround for uri field 2017-05-31 19:31:08 +02:00
Richard Körber e8790e8446 Rename Registration resource to Account 2017-05-03 13:42:38 +02:00
Richard Körber 7e58017347 Do not send the token on challenge response 2017-05-03 13:42:34 +02:00
Richard Körber 8e1563a410 Remove new-reg workaround 2017-05-03 13:42:22 +02:00
Richard Körber cdb2362892 Fix challenge fields
- use "url" instead of "uri"
- add support for "error" field
2017-05-03 13:42:17 +02:00
Richard Körber 7b6582ad78 revoke-cert sends JWK header 2017-05-03 13:42:09 +02:00
Richard Körber 0a63c65885 Update resource status after authorization deactivation 2017-05-03 13:41:18 +02:00
Richard Körber 300c9dd06c Remove all uses of HTTP_ACCEPTED 2017-05-03 13:39:59 +02:00
Richard Körber 4c34f9afb5 Add alternate certificates support 2017-05-03 13:37:28 +02:00
Richard Körber 7d83ef0e80 Add pre-authorization support 2017-05-03 13:37:22 +02:00
Richard Körber 4e1ad652b0 Account deactivation returns HTTP_OK and current account data 2017-05-03 13:37:15 +02:00
Richard Körber c4f75497c7 Set individual key identifier on account creation 2017-05-03 13:37:08 +02:00
Richard Körber f841daa5b6 Remove resource field from payload 2017-05-03 13:36:55 +02:00
Richard Körber 053b1750e8 DefaultConnection test coverage 2017-05-01 18:17:31 +02:00
Richard Körber 090bbdd34a Fix NPE when server sent no TOS header 2017-05-01 18:17:28 +02:00
Richard Körber cf5b05bf73 Add unit test for Registration orderCertificate 2017-05-01 18:17:24 +02:00
Richard Körber 231198992a Use constants for PEM labels 2017-05-01 18:17:20 +02:00
Richard Körber fdc05ba70b Code style fixes 2017-05-01 18:17:12 +02:00
Richard Körber 8819558b3f Authorization returns scope Order 2017-05-01 16:20:07 +02:00
Richard Körber 02cedf9935 Use Problem in AcmeServerException 2017-05-01 16:20:04 +02:00
Richard Körber c623d72426 Order returns an error document 2017-05-01 16:20:00 +02:00
Richard Körber 4e1d173cc3 Add Problem object for JSON problem documents 2017-05-01 16:19:57 +02:00
Richard Körber e192f300b4 Account returns a list of orders 2017-05-01 16:19:31 +02:00
Richard Körber 4b96878688 Do not return shortened error type any more 2017-05-01 16:18:39 +02:00
Richard Körber 896269ec33 Read rate limit documentation from links 2017-05-01 16:18:34 +02:00
Richard Körber 94ee501811 Remove unused AcmeConflictException 2017-05-01 16:18:07 +02:00
Richard Körber e748df364d Rename to AcmeUserActionRequiredException 2017-05-01 16:17:50 +02:00
Richard Körber 25b13a74e4 Fix misleading exception message 2017-05-01 16:17:29 +02:00
Richard Körber 203c986522 Remove status GOOD 2017-05-01 16:17:25 +02:00
Richard Körber 710e876585 Use system property for enabling Pebble workarounds 2017-05-01 16:17:01 +02:00
Richard Körber 1c75d28dae Use new-account instead of new-reg
Remove unused resource keys
2017-05-01 16:15:52 +02:00
Richard Körber 809978d188 Use Pebble for integration tests
- Build and run Pebble in a docker container
- Move integration tests into a separate module
- Add simple servers for http, dns, and tls-sni challenges
- Add integration tests for ordering a certificate
- Documentation
2017-04-30 11:57:11 +02:00
Richard Körber 34f17a7e6f Throw AcmeLazyLoadingException when lazy loading of a resource failed 2017-04-27 22:42:38 +02:00
Richard Körber 846e200e62 Change Certificate resource 2017-04-27 22:42:18 +02:00
Richard Körber 3951577708 Bump snapshot version for draft branch 2017-04-27 22:40:55 +02:00
Richard Körber a953e87b1b Put test JSONs in separate files 2017-04-27 22:40:40 +02:00
Richard Körber 77b0d4217d Mark other Pebble todos 2017-04-27 22:40:27 +02:00
Richard Körber ee3765e543 Pebble does not support kid header yet 2017-04-27 22:38:54 +02:00
Richard Körber 4772488896 Add Order resource 2017-04-27 22:36:46 +02:00
Richard Körber 4fe4c12c62 Use returned Registration object after creation 2017-04-19 00:49:07 +02:00
Richard Körber b40861c66c Key identifier was set on every setLocation, fixed 2017-04-19 00:48:34 +02:00
Richard Körber 7d822e106c Debug output of JWS header, payload and JSON response 2017-04-19 00:48:21 +02:00
Richard Körber 5de6efce95 Key identifier is a String 2017-04-19 00:48:05 +02:00
Richard Körber f2cd592b2e Make URL conversion null-safe 2017-04-19 00:47:57 +02:00
Richard Körber f38002ca06 Use URL instead of URI for accessible resources 2017-04-18 01:17:58 +02:00
Richard Körber d1b313a149 Return empty JSON array for easier processing 2017-04-18 01:13:58 +02:00
Richard Körber 4426a4a210 Read base64 encoded binary from JSON 2017-04-18 01:13:43 +02:00
Richard Körber e52a900001 Use JSON parser for Status 2017-04-18 01:08:11 +02:00
Richard Körber 698d25fd14 Merge master v0.10 into draft 2017-04-15 17:37:25 +02:00
Richard Körber 1b058f2753 Key-Identifier is part of the session 2017-04-15 17:20:31 +02:00
Richard Körber 30257d0529 [maven-release-plugin] prepare for next development iteration 2017-04-14 12:32:55 +02:00
Richard Körber 47827fb148 [maven-release-plugin] prepare release v0.10 2017-04-14 12:32:54 +02:00
Richard Körber f3dc04f2ea Certificate URL is available even on unparseable certs 2017-04-14 12:04:05 +02:00
Richard Körber 1f6d8aea0b Fix potential race condition when threads share a session 2017-04-14 12:03:50 +02:00
Richard Körber 08eaa61f75 No need to lazy-load provider in session 2017-04-14 12:03:41 +02:00
Richard Körber c667aba488 Update ITs to latest Pebble 2017-02-15 01:09:34 +01:00
Richard Körber 8d3d034103 Add Registration ITs 2017-02-15 01:08:35 +01:00
Richard Körber 8782787343 Show debug log when running tests 2017-02-15 01:08:26 +01:00
Richard Körber 75383ca794 Add integration tests against a Pebble test server 2017-02-15 01:07:47 +01:00
Richard Körber 3b3f379be2 Use terms-of-service-agreed to agree to TOS 2017-02-15 01:07:30 +01:00
Richard Körber d6d7e04ea5 Add JSON boolean type 2017-02-15 01:07:25 +01:00
Richard Körber 7aeb439a62 Use new-nonce resource for fetching initial nonce 2017-02-15 01:07:19 +01:00
Richard Körber be6b511085 Remove support for deprecated urn:acme:error prefix 2017-02-15 01:03:33 +01:00
Richard Körber 76ccb4587c Remove deprecated tls-sni-01 challenge 2017-02-15 01:03:27 +01:00
Richard Körber 4312331fd9 Add a provider for Pebble test servers 2017-02-15 01:03:18 +01:00
Richard Körber 1f4faf803b Use functional programming for challenge class generation 2017-02-11 11:57:37 +01:00
Richard Körber 898c552f77 Add stream method to JSON.Array 2017-02-11 11:57:06 +01:00
Richard Körber eedc2ae68c Use functional interface for ResourceIterator 2017-02-11 11:56:40 +01:00
Richard Körber c1b677f310 Use new date/time API 2017-02-11 11:56:26 +01:00
Richard Körber 0ed0a9219f Move to Java 8 2017-02-11 11:55:51 +01:00
Richard Körber e0e99850f2 [maven-release-plugin] prepare for next development iteration 2016-12-25 14:37:29 +01:00
Richard Körber fccfb73430 [maven-release-plugin] prepare release v0.9 2016-12-25 14:37:28 +01:00
Richard Körber 32bfe32077 Streamline error handling 2016-12-21 23:28:44 +01:00
Richard Körber 4a2d7c4178 Return empty collection instead of null 2016-12-21 23:28:25 +01:00
Richard Körber 2ce40ec971 Clean up code 2016-12-21 23:28:03 +01:00
Richard Körber 584452b079 Simplify handling of Retry-After header 2016-12-21 23:25:23 +01:00
Richard Körber 101801260f Replace all JSON maps with a JSON type 2016-12-21 23:24:49 +01:00
Richard Körber 0ee546da8b Rename ClaimBuilder to JSONBuilder 2016-12-21 23:08:58 +01:00
Richard Körber e6e5211755 Fix stack overflow if date is null 2016-12-21 22:57:23 +01:00
Richard Körber 6ab6333d94 Increase unit test coverage 2016-12-21 22:57:01 +01:00
Richard Körber 5565eba9eb Use standard method for null tests 2016-12-21 22:55:53 +01:00
Richard Körber 25b00313b2 Merge utility classes 2016-12-16 01:48:38 +01:00
Richard Körber 0a288fa290 Increase unit test coverage 2016-12-16 01:47:26 +01:00
Richard Körber b3fc9a732c Fix style issues 2016-12-16 01:42:53 +01:00
Richard Körber 232a243e92 Remove boilerplate code for parameter null checks 2016-12-16 01:19:25 +01:00
Richard Körber ce125da4aa Refactor HTTP response handling 2016-12-16 01:18:19 +01:00
Richard Körber 96d46784c6 Catch IOExceptions early 2016-12-16 01:17:15 +01:00
Richard Körber 1cca9e26af Add AcmeUtils for commonly used functions 2016-12-16 00:54:06 +01:00
Richard Körber acacaebb52 Fix unit test failures if logging with debug level 2016-12-16 00:38:59 +01:00
Richard Körber 527bb644f5 Update dependencies 2016-12-16 00:36:39 +01:00
Richard Körber a74a0f0531 Also accept 202-Accepted for registration and authorization deactivation 2016-12-06 00:43:16 +01:00
Richard Körber 3803833240 Handle agreementRequired error 2016-11-21 01:26:14 +01:00
Richard Körber 0f44b6fc0f Change oob-01 parameter as defined in draft-04 2016-11-21 01:25:38 +01:00
Richard Körber be477c6c0a Remove http-01 preferred address 2016-11-21 01:25:32 +01:00
Richard Körber 66956e5587 Implement key-change as documented in draft-04 2016-11-18 21:51:14 +01:00
Richard Körber 22961b3fba Add url to protected header, fix content type 2016-11-18 21:38:13 +01:00
Richard Körber 07beefdd15 Validate signature 2016-11-18 21:36:00 +01:00
Richard Körber ef42e04793 Handle IDE domain names 2016-11-18 21:22:36 +01:00
Richard Körber 9d71ed35e6 [maven-release-plugin] prepare for next development iteration 2016-10-08 09:06:48 +02:00
Richard Körber 6f46174444 [maven-release-plugin] prepare release v0.8 2016-10-08 09:06:48 +02:00
Richard Körber 1488377e28 Add support for Accept-Language header 2016-10-05 00:14:53 +02:00
Richard Körber d07e9256e7 Use a proper user agent header 2016-08-10 23:09:03 +02:00
Richard Körber 01290f31e7 [maven-release-plugin] prepare for next development iteration 2016-07-27 23:35:54 +02:00
Richard Körber 8c60854f0f [maven-release-plugin] prepare release v0.7 2016-07-27 23:35:54 +02:00
Richard Körber 3d6342a917 Only throw AcmeRetryAfterException when there is an actual retry date 2016-07-27 23:29:56 +02:00
Richard Körber ef7070a3b6 Add another header unit test 2016-07-27 23:09:42 +02:00
Richard Körber 93246e6e0d Mark http-01 address as deprecated 2016-07-27 22:58:15 +02:00
Richard Körber 957dfd71a1 Evaluate rate-limit relation when rate limit is exceeded 2016-07-27 22:58:02 +02:00
Richard Körber 57194ce0fc Use constants for acme error prefixes 2016-07-27 22:55:42 +02:00
Richard Körber 91c402473f Use jose4j's thumbprint calculation 2016-07-27 22:55:24 +02:00
Richard Körber 31c4d6d133 NPE when no Retry-After header is set. Fixes issue #20. 2016-07-27 22:52:36 +02:00
Richard Körber 22610b7a03 [maven-release-plugin] prepare for next development iteration 2016-07-21 21:33:57 +02:00
Richard Körber 3bc8e07c8d [maven-release-plugin] prepare release v0.6 2016-07-21 21:33:57 +02:00
Richard Körber 13c2ba9169 Bind on RegistrationBuilder.create 2016-07-21 21:32:22 +02:00
Richard Körber 434b349d20 Some more documentation changes 2016-07-21 21:30:55 +02:00
Richard Körber 627e2c228e Accept optional notBefore and notAfter with CSR 2016-07-21 00:58:11 +02:00
Richard Körber 9b86b88e4a Lazily load current status of Authorization and Registration. 2016-07-21 00:56:51 +02:00
Richard Körber 5049cd5ffd Evaluate retry-after header 2016-07-21 00:56:22 +02:00
Richard Körber cef5984f81 Offer iterators of authorizations and certificates 2016-07-21 00:54:27 +02:00
Richard Körber 68b7560f2f Remove unused test json 2016-07-21 00:51:01 +02:00
Richard Körber 8f2ac7c4c7 Give access to directory metadata 2016-07-21 00:45:01 +02:00
Richard Körber 0195e5b16c Check identifier type on authorizations 2016-07-21 00:38:34 +02:00
Richard Körber 4c34ce8352 Update dependencies, fix deprecation warnings 2016-07-21 00:38:17 +02:00
Richard Körber 42e94125d8 Set a RevocationReason on certificate revocation 2016-07-07 00:12:06 +02:00
Richard Körber 78cb7259d4 Use certificate if already available on request time 2016-07-07 00:11:39 +02:00
Richard Körber 7eec503d55 Return registration status 2016-07-07 00:11:26 +02:00
Richard Körber 7eb2fe5945 Use original error detail message on conflict errors 2016-07-07 00:11:02 +02:00
Richard Körber cb5a853715 Read response after modifying a registration 2016-07-07 00:10:36 +02:00
Richard Körber 1adfb8c9df Add method to update registration. 2016-07-07 00:08:01 +02:00
Richard Körber 3403c69985 Major refactoring and improved API.
- AcmeClient is replaced by a Session object.
- Server communication has been moved from AcmeClient to the resource classes.
- Removed clutter from API (e.g. internal setters).
- Updated documentation and added a migration guide.
2016-07-07 00:02:09 +02:00
Richard Körber 05cc02dca6 Fixed missing JSON debug output 2016-06-22 00:47:48 +02:00
Richard Körber b72d0ee66f Update key rollover to current acme draft 2016-06-22 00:47:03 +02:00
Richard Körber c48febda62 Move jwkThumbprint() to SignatureUtils, add unit test 2016-06-22 00:45:57 +02:00
Richard Körber ddac0c45d1 Add support for oob-01 challenge 2016-06-21 00:01:40 +02:00
Richard Körber 279e0f3993 Evaluate Retry-After header on rate limit excess 2016-06-21 00:00:16 +02:00
Richard Körber 5dc1b9314e Accounts and registrations are now deactivated, not deleted 2016-06-13 23:17:30 +02:00
Richard Körber 1c2b7392e4 Minor formatting fixes 2016-06-09 22:56:13 +02:00
Richard Körber 288bf31c24 AcmeProtocolException is sufficient for recursion excess 2016-06-09 22:55:53 +02:00
Richard Körber 726aff9b80 Assert that relation is 'up' 2016-06-09 22:55:07 +02:00
Richard Körber 24b11fe5a9 Merge pull request #16 from cargy/fetch_cert_chain
add support for fetching certificate chain
2016-06-09 22:52:09 +02:00
Richard Körber 5e3167ac06 [maven-release-plugin] prepare for next development iteration 2016-06-03 20:26:01 +02:00
Richard Körber a2e8bc2076 [maven-release-plugin] prepare release v0.5 2016-06-03 20:26:01 +02:00
Richard Körber 859622ed9e Tests seem to require BC on OpenJDK 2016-06-03 20:14:22 +02:00
argy b13c90b7a4 fixed code formatting issues and added copyright header 2016-06-02 23:24:44 +03:00
Wojciech Szarmach 048994de8e Code style issues fix 2016-06-02 14:07:00 +02:00
argy d5b4ff37dc add support for fetching certificate chain 2016-05-29 03:44:27 +03:00
Wojciech Szarmach 428ca84613 Whitespace fix 2016-05-24 10:54:31 +02:00
Wojciech Szarmach 21092fc647 DefaultConnection stream reading fix 2016-05-24 10:51:13 +02:00
Richard Körber 093ab147b6 [maven-release-plugin] prepare for next development iteration 2016-04-16 15:12:12 +02:00
Richard Körber 9041b08a4f [maven-release-plugin] prepare release v0.4 2016-04-16 15:12:12 +02:00
Richard Körber 92b3076031 Remove account recovery. Closes issue #1. 2016-03-21 23:28:46 +01:00
Richard Körber 19787f4c00 Also accept 'urn:ietf:params:acme:error' error responses 2016-03-21 23:12:24 +01:00
Richard Körber b8bfc5fa0f Remove proof-of-possession challenge. Closes issue #4. 2016-03-21 22:35:36 +01:00
Richard Körber bc8c8f24f0 Accept an optional address for http-01 challenge 2016-03-19 16:20:58 +01:00
Richard Körber 8deceb473c Add support for tls-sni-02 2016-03-19 15:42:22 +01:00
Richard Körber acd6f8019d Add method to delete an authorization 2016-03-19 13:53:54 +01:00
Richard Körber 23bd838928 Add method to delete an account 2016-03-19 13:39:16 +01:00
Richard Körber 9ce3718861 Expect Account Key Roll-Over to return HTTP_OK on success 2016-03-19 13:05:57 +01:00
Richard Körber 158c3c46d1 Review exceptions, closes issue #10 2016-03-17 00:58:32 +01:00
Richard Körber 4e3b30fc78 Accept EC keys on changeRegistrationKey() 2016-03-10 01:40:34 +01:00
Richard Körber 6f122e63f1 Accept null for JSON problem type and detail 2016-02-20 13:58:04 +01:00
Richard Körber 749abc8f99 Fix detection of NIST P521. Add unit tests for SignatureUtils. 2016-02-02 00:08:31 +01:00
Richard Körber 99edd1032c [maven-release-plugin] prepare for next development iteration 2016-01-31 17:44:31 +01:00
Richard Körber 74b52ae77b [maven-release-plugin] prepare release v0.3 2016-01-31 17:44:31 +01:00
Richard Körber 82a6eb16cb Add version number to challenge classes 2016-01-31 17:08:55 +01:00
Richard Körber 162c2c3773 Support ECC in JWS 2016-01-31 14:47:02 +01:00
Richard Körber 1b83115892 Merge Account and Registration, simplify API 2016-01-28 23:55:09 +01:00
Richard Körber d4a8d449c9 Add Account Key Roll-over 2016-01-16 16:23:01 +01:00
Richard Körber d7adc5d486 Change 'proofOfPossession' to 'proof-of-possession' 2016-01-11 01:28:50 +01:00
Richard Körber 289c71bb4e [maven-release-plugin] prepare for next development iteration 2016-01-09 17:28:53 +01:00
Richard Körber e49bf4e8f2 [maven-release-plugin] prepare release v0.2 2016-01-09 17:28:53 +01:00
Richard Körber c83df44eed Expire resource directory cache.
A long term AcmeClient instance could miss changes to the directory,
so the cache is invalidated after 1 hour.
2016-01-09 17:23:05 +01:00