Commit Graph

525 Commits (master)

Author SHA1 Message Date
Richard Körber 41bc574f75
Enhance Accept-Language header
Before this patch, it was only the language tag of the selected Locale.
Now it also offers the language itself (without the country) and any
other available language as fallback. It is also possible to set the
locale to null, which will accept any language.
2023-04-24 21:52:18 +02:00
Richard Körber b0287d4d94
Accept gzip compression 2023-04-24 21:23:58 +02:00
Richard Körber 783fdde013
Use the java.net.http client
With this patch, the old HttpURLConnection client is replaced with
the new java.net.http client that was introduced in Java 11.
2023-04-24 21:16:07 +02:00
Richard Körber d6296111f7
Use wiremock to test HTTP client 2023-04-23 22:43:18 +02:00
Richard Körber aeb68c0cb4
Remove deprecated methods 2023-04-23 13:13:27 +02:00
Richard Körber 0d55898379
Port codebase to Java 11 2023-04-23 13:13:27 +02:00
Richard Körber 41d9855bc0
Bump to v3.0.0, adhere to SemVer 2023-04-23 08:44:21 +02:00
Richard Körber 590b4e975b
[maven-release-plugin] prepare for next development iteration 2023-02-11 16:55:27 +01:00
Richard Körber 9e3a5061c8
[maven-release-plugin] prepare release v2.16 2023-02-11 16:55:27 +01:00
Richard Körber 861b3a1f81
[maven-release-plugin] prepare for next development iteration 2022-11-25 13:24:12 +01:00
Richard Körber 5a984bb49b
[maven-release-plugin] prepare release v2.15 2022-11-25 13:24:12 +01:00
Richard Körber 95fd249d28
Update dependencies 2022-11-03 17:01:16 +01:00
Richard Körber 109731090c
[maven-release-plugin] prepare for next development iteration 2022-06-29 20:07:57 +02:00
Richard Körber d088b30822
[maven-release-plugin] prepare release v2.14 2022-06-29 20:07:57 +02:00
Richard Körber 379f184a41
Add generator for DNS challenge resource name 2022-06-29 20:02:52 +02:00
Richard Körber a25b8c1b8d
Use Assertj instead of Hamcrest 2022-05-14 12:39:27 +02:00
Richard Körber f3c7e8a46c
Upgrade all tests to JUnit 5 2022-05-14 12:24:21 +02:00
Richard Körber edf2018433
[maven-release-plugin] prepare for next development iteration 2022-05-09 17:16:05 +02:00
Richard Körber 768fd68bcc
[maven-release-plugin] prepare release v2.13 2022-05-09 17:16:05 +02:00
Richard Körber 00ee9e4dd5
Use assertThrows instead of try/fail constructs 2022-05-07 11:25:59 +02:00
Richard Körber cf0bfc1390
Prefetch from certificate stream (fixes #127)
Works around a bug in Conscrypt. The certificate stream is not read
there if InputStream.available() returns 0, which is the case in acme4j
since the stream is directly read from the CA via HTTP.

The workaround uses a BufferedInputStream and prefetches a few bytes
from the HTTP stream if available() is invoked.
2022-05-07 11:15:16 +02:00
Richard Körber cc8cc841c1
[maven-release-plugin] prepare for next development iteration 2021-07-03 11:19:53 +02:00
Richard Körber 8cb2468060
[maven-release-plugin] prepare release v2.12 2021-07-03 11:19:53 +02:00
Richard Körber 2f2e59fd36
Permit to globally register additional challenge types 2021-07-03 10:04:27 +02:00
Richard Körber a3ed2257b6
Add new method to bind to a specified challenge type 2021-07-03 09:53:09 +02:00
Richard Körber 78dfe248b2
[maven-release-plugin] prepare for next development iteration 2020-11-12 22:40:25 +01:00
Richard Körber bfafb5655a
[maven-release-plugin] prepare release v2.11 2020-11-12 22:40:25 +01:00
Richard Körber 3cf73e9f5c
Add method to get a list of alternate certificates 2020-11-12 22:39:24 +01:00
Richard Körber ae37fe9004
Minor optimizations 2020-10-24 19:42:20 +02:00
Richard Körber 2cff3a5c90
Review all unit tests
- Replace deprecated org.junit.Assert.assertThat by org.hamcrest.MatcherAssert.assertThat
- Other minor checkstyle fixes
2020-10-24 18:05:06 +02:00
Richard Körber c5eba760f6
[maven-release-plugin] prepare for next development iteration 2020-08-02 17:13:29 +02:00
Richard Körber 0bc1a004dc
[maven-release-plugin] prepare release v2.10 2020-08-02 17:13:28 +02:00
Richard Körber 8c17ae730c
Checkstyle fixes 2020-08-02 17:06:08 +02:00
Richard Körber 610b9366bd
Add module-info definitions, fix related issues 2020-06-02 14:08:20 +02:00
Richard Körber b32f03b23a
Replace JSR305 null-safe annotations by SpotBugs annotations
Reason is that JSR305 annotations cannot be used in a modular environment due to split package issues.
2020-06-02 14:08:20 +02:00
Richard Körber 6dec97d8a4
Evaluate HTTP caching headers for directory resource
Until now, acme4j has cached the directory for 1 hour. This could lead to errors if the directory was changed, or the server was down for maintenance. Now acme4j caches the directory resource according to the HTTP Expires or Modified-Since headers.
2020-05-24 11:05:07 +02:00
Richard Körber 1eb3965ac0
Verbose exception when getOrders is not supported by the server 2020-04-30 19:35:37 +02:00
Richard Körber 355a00b293
[maven-release-plugin] prepare for next development iteration 2020-03-22 22:24:55 +01:00
Richard Körber 75a9b8a2ea
[maven-release-plugin] prepare release v2.9 2020-03-22 22:24:55 +01:00
Richard Körber 908da9697d
tls-alpn-01 and IP identifier extension got RFC numbers 2020-03-06 00:32:45 +01:00
Richard Körber 9d62cb6a55
Support acme-star-09 draft, change API and documentation 2020-01-23 23:26:48 +01:00
Richard Körber 5647d0c319
[maven-release-plugin] prepare for next development iteration 2019-12-07 16:21:26 +01:00
Richard Körber 85a4091ab7
[maven-release-plugin] prepare release v2.8 2019-12-07 16:21:25 +01:00
Richard Körber 925a116a38
Migrate docs to mkdocs 2019-12-07 14:27:33 +01:00
Richard Körber 8aa7e4ad8e
Throw AcmeLazyLoadingException on bindChallenge 2019-10-30 22:32:04 +01:00
Richard Körber e7c2bf25f5
Add a way to change network timeouts 2019-10-30 22:31:21 +01:00
Richard Körber 2215bfe83d
Expect JSON results to be always present
This saves an unnecessary and annoying null dereference check.
2019-10-27 14:47:23 +01:00
Anders Mikkelsen 0b1e512a57 implemented bindChallenge 2019-10-27 13:47:49 +01:00
Richard Körber 0343a81a9f
Add a mock framework 2019-06-20 14:41:50 +02:00
Richard Körber 210b2aa453
Return external account binding key identifier 2019-04-28 17:34:30 +02:00
Richard Körber d02746156d
Checkstyle fixes 2019-04-28 12:19:57 +02:00
Richard Körber c19a6ad1a4
Fix possible NPE 2019-04-27 17:37:03 +02:00
Richard Körber 576a798186
Use correct rate limit link relation name 2019-04-26 09:05:57 +02:00
Richard Körber efc4a04df4
Throw the original bad nonce exception 2019-04-26 09:04:47 +02:00
Richard Körber c0d6bfb057
Return JSON data as Map 2019-04-26 09:03:44 +02:00
Richard Körber 9a22a74429
Session accepts a provider instance 2019-04-26 09:03:27 +02:00
Richard Körber 396ddd7c86
Add remark that findChallenge(String) is not type safe 2019-04-17 14:42:27 +02:00
Richard Körber 9870f44cbf
Also find challenges by class type 2019-04-07 11:12:29 +02:00
Richard Körber 72a716bafd
Use consistent exceptions, remove unneccessary throws clause 2019-04-07 10:46:17 +02:00
Richard Körber 31409a3872
[maven-release-plugin] prepare for next development iteration 2019-03-24 15:41:38 +01:00
Richard Körber f799a2e5de
[maven-release-plugin] prepare release v2.7 2019-03-24 15:41:38 +01:00
Richard Körber 542b50b741
Code cleanup 2019-03-24 13:52:45 +01:00
Richard Körber a1db2fa29b
Move JOSE related methods into an utility class 2019-03-24 13:40:13 +01:00
Richard Körber d6b53b0bbd
Use base64 URL encoding in unit tests 2019-03-24 13:27:56 +01:00
Richard Körber e689f7373d
Use Java's own base64 decoder and encoder 2019-03-17 17:36:56 +01:00
Richard Körber 710d2ca948
Accept String IP for convenience 2019-03-16 16:58:30 +01:00
Richard Körber 0afee7a9e8
Add acme-star's recurrent-certificate-predate field 2019-03-16 16:53:14 +01:00
Richard Körber bfb2bc325d
Remove IDE generated files 2019-03-16 16:42:22 +01:00
Richard Körber 9941de6fc9
Add automatic-module-name 2019-01-31 00:43:11 +01:00
Richard Körber 0c6843ddd7
[maven-release-plugin] prepare for next development iteration 2019-01-26 13:29:40 +01:00
Richard Körber 6a3db93493
[maven-release-plugin] prepare release v2.6 2019-01-26 13:29:40 +01:00
Richard Körber c0c6d1a13a
Use official pebble docker image 2019-01-19 00:14:24 +01:00
Richard Körber 62d2e9c1c0
Support draft-ietf-acme-star-04 2019-01-12 18:11:38 +01:00
Richard Körber 9d3ab4972c
Validate challenge tokens before use 2019-01-12 16:28:07 +01:00
Richard Körber 1e50669999
Accept all host names when accessing Pebble 2019-01-12 15:08:21 +01:00
Richard Körber cda0f4284b
Revocate when only the account key and certificate is available 2019-01-12 13:59:19 +01:00
Richard Körber d9e52fe59a
[maven-release-plugin] prepare for next development iteration 2018-11-12 17:18:24 +01:00
Richard Körber e8160bd8ec
[maven-release-plugin] prepare release v2.5 2018-11-12 17:18:24 +01:00
Richard Körber 0c7aa2be1b
Remove pre-draft-15 compatibility code 2018-11-01 12:50:31 +01:00
Richard Körber 45ddd96e3e
Fix hamcrest deprecation warnings 2018-11-01 12:37:55 +01:00
Richard Körber 05841101fe
[maven-release-plugin] prepare for next development iteration 2018-10-13 10:45:11 +02:00
Richard Körber d0b38e22f3
[maven-release-plugin] prepare release v2.4 2018-10-13 10:45:11 +02:00
Richard Körber 158e0c8415
Use POST-as-GET for account updates 2018-10-10 21:58:54 +02:00
Richard Körber 724537f54b
Fix javadoc 2018-09-27 18:33:13 +02:00
Richard Körber a8a9bb4ebf
Remove deprecated methods (as announced) 2018-09-26 20:03:48 +02:00
Richard Körber 33db1c2186
Add postasget parameter to generic acme URI 2018-09-26 19:30:33 +02:00
Richard Körber 01398e1bbc
Pass serverUri to provider's connect() method 2018-09-26 19:30:04 +02:00
Richard Körber bb35678c2d
Boulder needs a pre-draft-15 compatibility mode 2018-09-26 19:27:41 +02:00
Richard Körber 1297ca4de2
Send POST-as-GET requests 2018-09-26 19:24:20 +02:00
Richard Körber 5098b5364b
Send Accept header when requesting a certificate 2018-09-21 00:00:19 +02:00
Richard Körber ea2dedbbba
[maven-release-plugin] prepare for next development iteration 2018-09-03 22:45:26 +02:00
Richard Körber bb30ea8feb
[maven-release-plugin] prepare release v2.3 2018-09-03 22:45:26 +02:00
Richard Körber d0d93b855a
Support the acme-star extension 2018-08-22 18:39:13 +02:00
Richard Körber f609a797cb
Checkstyle fixes 2018-08-22 18:14:40 +02:00
Richard Körber a8047704aa
Fix syntax error in test JSON 2018-08-22 17:48:00 +02:00
Richard Körber bd485c23ef
Fix deprecated warnings 2018-08-22 17:47:47 +02:00
Richard Körber 95614e73c5
Changes for latest draft-ietf-acme-tls-alpn 2018-08-22 17:44:47 +02:00
Richard Körber 1cffd3428d
Support the acme-ip draft 2018-08-20 23:36:38 +02:00
Richard Körber 9e4ba4fcb1
Allow to pre-authorize and order Identifier objects 2018-08-20 23:09:41 +02:00
Richard Körber 3689ab5e5e
Support more identifier types 2018-08-20 23:07:07 +02:00
Richard Körber 57b050c868
Remove unused imports 2018-08-20 22:56:22 +02:00
Dmitriy Dumanskiy ff57bc224d IDE warnings fixes 2018-08-09 19:00:37 +02:00
Alexandr Dolgov 2370749e16 Log HEAD request and its headers 2018-08-01 09:56:27 +05:00
Dmitriy Dumanskiy cbc202ea14 #65 Added AccountBuilder.addEmail method 2018-07-29 17:34:08 +03:00
Richard Körber a0e481eedc
Also validate contacts on EditableAccount 2018-07-29 15:45:25 +02:00
Richard Körber f0000b9824
Change account key roll-over as described in draft 13 2018-07-29 12:51:10 +02:00
Richard Körber 0de4181848
[maven-release-plugin] prepare for next development iteration 2018-07-15 15:26:38 +02:00
Richard Körber c1dee451e7
[maven-release-plugin] prepare release v2.2 2018-07-15 15:26:38 +02:00
Richard Körber 6be3f5ef4f
[maven-release-plugin] prepare for next development iteration 2018-04-18 23:25:53 +02:00
Richard Körber 274cfc9a63
[maven-release-plugin] prepare release v2.1 2018-04-18 23:25:52 +02:00
Richard Körber 4d8d951a6b
Note that some lists have no specific order 2018-04-17 22:48:16 +02:00
Richard Körber 568438a1f3
Add support for tls-alpn-01 challenge 2018-04-17 00:35:26 +02:00
Richard Körber cd7038a7fa
Send kid instead of jwk when revoking a cert (fixes issue #62) 2018-04-16 19:40:34 +02:00
Richard Körber ee291da06b
Note that wildcard domains cannot be pre-authorized 2018-04-16 19:40:13 +02:00
Richard Körber 7a1136ec2a
Use GenericProvider without ClassLoader 2018-03-27 22:17:27 +02:00
Richard Körber aa04ade9bb
Document a missing Authorization state 2018-03-27 22:12:16 +02:00
Richard Körber efb0b9d2f8
Document change of terms of service 2018-03-21 23:14:23 +01:00
Richard Körber 3f901e9e18
Strip empty lines from downloaded cert chains
This fixes the "insufficient data" issue on IBMs crypto implementation.
2018-03-21 23:14:08 +01:00
Richard Körber 2ac4e7b7fb
Restore "Do not send authorization with challenge"
Also set Pebble to strict mode.

This reverts commit cdab2b8bd0.
2018-03-18 13:55:59 +01:00
Richard Körber 3cd74220dd
Restore syntax highlighting in documentation 2018-03-18 13:42:51 +01:00
Richard Körber 7093fe7e92
Add JSR305 annotations
Also fix FindBugs errors about possible null pointer dereferences.

Null-aware languages like Kotlin can now enjoy null-checks.
2018-03-18 13:25:25 +01:00
Richard Körber 4de82be5f3
JSON getters never return null 2018-03-17 18:18:44 +01:00
Richard Körber a8d3f86f85
[maven-release-plugin] prepare for next development iteration 2018-03-13 23:40:55 +01:00
Richard Körber 14484b9fc9
[maven-release-plugin] prepare release v2.0 2018-03-13 23:40:54 +01:00
Richard Körber 7cfcbc99b6
Handle empty JSON responses 2018-03-13 23:15:19 +01:00
Richard Körber 44a036a858
Review status documentation 2018-03-10 15:22:23 +01:00
Richard Körber 323788dfdb
SpotBugs fix 2018-03-10 15:21:53 +01:00
Richard Körber 49677d8dbc
Add support for Proxy connections 2018-03-06 22:11:05 +01:00
Richard Körber b4374dbf6d
Add support for wildcard flag 2018-03-06 22:10:55 +01:00
Richard Körber 09abb23599
Add SpotBugs and fix reported issues 2018-03-06 22:10:18 +01:00
Richard Körber 69a23e7bf6
Avoid unnecessary de/encoding of nonces 2018-03-06 22:10:08 +01:00
Richard Körber 1972d52bed
Review documentation, update to ACME v2 2018-02-21 20:04:59 +01:00
Richard Körber dadaf2493f
Separate Login from Session
This involves a lot of refactoring and some API changes. However, it allows to clean up some parts of the code that I always considered ugly.
2018-02-21 20:01:51 +01:00
Richard Körber a111187245
Relax HTTP status handling 2018-02-21 19:59:01 +01:00
Richard Körber 0d42089318
Return nonce header 2018-02-21 19:58:50 +01:00
Richard Körber b690e0ab45
Session contains account location instead of abstract key identifier 2018-02-21 19:56:59 +01:00
Richard Körber 431a5cf313
Update dependencies 2018-02-12 15:29:26 +01:00
Richard Körber 137c2c7dd0
Remove tls-sni-02 challenge 2018-01-23 18:03:55 +01:00
Richard Körber 472f1497db
Change challenge errors to error 2018-01-20 13:19:30 +01:00
Robert Kästel f42e783760 Remove code that replaces account key kid with external account binding
kid after the external account binding process is done.

Relevant discussion on IETF ACME mailing list: https://mailarchive.ietf.org/arch/search/?email_list=acme&gbt=1&index=_j_xfYp9rlLeAtOWtSuQ-UtX3k0
2018-01-16 11:24:03 +01:00
Richard Körber f37b14b55c
Add test for a missing branch 2018-01-14 14:42:09 +01:00
Richard Körber e528cad215
Minor code cleanup 2018-01-14 14:41:44 +01:00
Richard Körber 1eb56ed8d6
Move generic challenge generation to AbstractAcmeProvider 2018-01-14 14:18:39 +01:00
Richard Körber 3f8299c004
Rename respond method to prepareResponse 2018-01-14 14:16:29 +01:00
Richard Körber 8923e35d21
Challenge constructor requires JSON data 2018-01-14 14:16:20 +01:00
Richard Körber 252d886b3f
Refactor ACME resource classes
A new AcmeJsonResource takes care of fetching and keeping the resource state.
A lot of boilerplate code could be removed that way.
2018-01-14 14:07:25 +01:00
Richard Körber 816f0825c0
Get a JSON Value as Optional
This enables further filtering and mapping of a JSON Value.
2018-01-14 13:22:49 +01:00
Richard Körber 9a483fd4d1
Remove authorize method from challenges 2018-01-14 13:15:56 +01:00
Richard Körber 70d089c94d
Use Pebble minica in truststore 2018-01-13 13:51:50 +01:00
Richard Körber ae7e0da342
Bump to version 2.0, to emphasize the relation to ACMEv2 2018-01-07 22:49:52 +01:00