Skip to content

Commit 703179a

Browse files
committed
Release 2.7.0
New features: - Added overloaded setter `RelyingPartyBuilder.origins(Optional<Set<String>>)`. - Added support for the CTAP2 `credProtect` extension. - Added support for the `prf` extension. - (Experimental) Added option `FinishRegistrationOptions.isConditionalCreate` to allow UP=0 in registration response for registration ceremonies with `mediation: "conditional"`. - NOTE: Experimental features may receive breaking changes without a major version increase. Fixes: - Excluded CVE-2025-27820 vulnerable versions of Apache httpclient5 from dependency resolution. Note that this might only affect consumers using Gradle module metadata.
2 parents 47ceee8 + 7ca8cff commit 703179a

29 files changed

+2412
-316
lines changed

.github/workflows/build.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,16 @@ jobs:
8484
if: ${{ matrix.java != 8 }} # JDK 8 does not produce reproducible binaries
8585
run: |
8686
./gradlew clean primaryPublishJar
87-
find . -name '*.jar' | xargs sha256sum | tee checksums.sha256sum
88-
./gradlew clean primaryPublishJar && sha256sum -c checksums.sha256sum
89-
./gradlew clean primaryPublishJar && sha256sum -c checksums.sha256sum
87+
find . -name '*.jar' | grep -v buildSrc | grep -v gradle-wrapper | xargs sha256sum | tee java-webauthn-server-artifacts.sha256sum
88+
./gradlew clean primaryPublishJar && sha256sum -c java-webauthn-server-artifacts.sha256sum
89+
./gradlew clean primaryPublishJar && sha256sum -c java-webauthn-server-artifacts.sha256sum
90+
91+
- name: Archive artifact checksums
92+
if: ${{ matrix.java != 8 }} # JDK 8 does not produce reproducible binaries
93+
uses: actions/upload-artifact@v4
94+
with:
95+
name: artifact-checksums-java${{ matrix.java }}-${{ matrix.distribution }}
96+
path: java-webauthn-server-artifacts.sha256sum
9097

9198
publish-test-results:
9299
name: Publish test results

NEWS

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
== Version 2.7.0 ==
2+
3+
New features:
4+
5+
* Added overloaded setter `RelyingPartyBuilder.origins(Optional<Set<String>>)`.
6+
* Added support for the CTAP2 `credProtect` extension.
7+
* Added support for the `prf` extension.
8+
* (Experimental) Added option `FinishRegistrationOptions.isConditionalCreate` to
9+
allow UP=0 in registration response for registration ceremonies with
10+
`mediation: "conditional"`.
11+
** NOTE: Experimental features may receive breaking changes without a major
12+
version increase.
13+
14+
Fixes:
15+
16+
* Excluded CVE-2025-27820 vulnerable versions of Apache httpclient5 from
17+
dependency resolution. Note that this might only affect consumers using Gradle
18+
module metadata.
19+
20+
121
== Version 2.6.0 ==
222

323
`webauthn-server-core`:

README

Lines changed: 55 additions & 55 deletions
Large diffs are not rendered by default.

build.gradle

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,16 @@ dependencies {
4141
}
4242

4343
allprojects {
44-
ext.snapshotSuffix = "<count>.g<sha>-SNAPSHOT<dirty>"
45-
ext.dirtyMarker = "-DIRTY"
46-
47-
apply plugin: 'com.cinnober.gradle.semver-git'
4844
apply plugin: 'idea'
4945

46+
if (System.env.VERSION) {
47+
it.version = System.env.VERSION
48+
} else {
49+
ext.snapshotSuffix = "<count>.g<sha>-SNAPSHOT<dirty>"
50+
ext.dirtyMarker = "-DIRTY"
51+
apply plugin: 'com.cinnober.gradle.semver-git'
52+
}
53+
5054
idea.module {
5155
downloadJavadoc = true
5256
downloadSources = true

doc/releasing.md

Lines changed: 65 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ Release candidate versions
1515
Gradle build script. Conversely, remove or downgrade to `implementation` any
1616
dependencies no longer exposed in the public API.
1717

18+
Add `@since` tags to the JavaDoc for new features.
19+
1820
3. Run the tests one more time:
1921

2022
```
2123
$ ./gradlew clean check
2224
```
2325
24-
4. Update the Java version in the [`release-verify-signatures`
25-
workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42).
26+
4. Update the Java version in the [`release-verify-signatures` workflow][workflow-release-src].
2627
2728
See the `openjdk version` line of output from `java -version`:
2829
@@ -44,39 +45,55 @@ Release candidate versions
4445
Check that this version is available in GitHub Actions. Commit this change,
4546
if any.
4647
47-
5. Tag the head commit with an `X.Y.Z-RCN` tag:
48+
5. Push the branch to GitHub.
49+
50+
If the pre-release makes significant changes to the project README, such
51+
that the README does not accurately reflect the latest non-pre-release
52+
version, push the changes on a separate release branch:
4853
4954
```
50-
$ git tag -a -s 1.4.0-RC1 -m "Pre-release 1.4.0-RC1"
55+
$ git checkout -b release-1.4.0
56+
$ git push origin release-1.4.0
5157
```
5258
53-
No tag body needed.
59+
If the README still accurately reflects the latest non-pre-release version,
60+
you can simply push to main instead:
5461
55-
6. Publish to Sonatype Nexus:
62+
```
63+
$ git push origin main
64+
```
65+
66+
6. Wait for the ["build" workflow][workflow-build] to finish.
67+
Download the `artifact-checksums-java17-temurin` artifact,
68+
unpack it and verify that the artifact checksums match artifacts built locally:
5669
5770
```
58-
$ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
71+
$ unzip artifact-checksums-java17-temurin.zip
72+
$ VERSION=0.1.0-SNAPSHOT ./gradlew primaryPublishJar
73+
$ sha256sum -c java-webauthn-server-artifacts.sha256sum
5974
```
6075
61-
7. Push to GitHub.
76+
7. Tag the head commit with an `X.Y.Z-RCN` tag:
6277
63-
If the pre-release makes significant changes to the project README, such
64-
that the README does not accurately reflect the latest non-pre-release
65-
version, push the changes on a separate release branch:
78+
```
79+
$ git tag -a -s 1.4.0-RC1 -m "Pre-release 1.4.0-RC1"
80+
```
81+
82+
No tag body needed.
83+
84+
8. Publish to Sonatype Nexus:
6685
6786
```
68-
$ git checkout -b release-1.4.0
69-
$ git push origin release-1.4.0 1.4.0-RC1
87+
$ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
7088
```
7189
72-
If the README still accurately reflects the latest non-pre-release version,
73-
you can simply push to main instead:
90+
9. Push the tag to GitHub:
7491
7592
```
76-
$ git push origin main 1.4.0-RC1
93+
$ git push origin 1.4.0-RC1
7794
```
7895
79-
8. Make GitHub release.
96+
10. Make GitHub release.
8097
8198
- Use the new tag as the release tag.
8299
- Check the pre-release checkbox.
@@ -86,9 +103,7 @@ Release candidate versions
86103
- Note the JDK version shown by `java -version` in step 3.
87104
For example: `openjdk version "17.0.7" 2023-04-18`.
88105
89-
9. Check that the ["Reproducible binary"
90-
workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
91-
runs and succeeds.
106+
11. Check that the ["Reproducible binary" workflow][workflow-release] runs and succeeds.
92107
93108
94109
Release versions
@@ -105,6 +120,8 @@ Release versions
105120
Gradle build script. Conversely, remove or downgrade to `implementation` any
106121
dependencies no longer exposed in the public API.
107122
123+
Add `@since` tags to the JavaDoc for new features.
124+
108125
3. Make a no-fast-forward merge from the last (non release candidate) release
109126
to the commit to be released:
110127
@@ -133,8 +150,7 @@ Release versions
133150
134151
6. Update the version in JavaDoc links in the READMEs.
135152
136-
7. Update the Java version in the [`release-verify-signatures`
137-
workflow](https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42).
153+
7. Update the Java version in the [`release-verify-signatures` workflow][workflow-release-src].
138154
139155
See the `openjdk version` line of output from `java -version`:
140156
@@ -168,27 +184,43 @@ Release versions
168184
$ ./gradlew clean check
169185
```
170186
171-
10. Tag the merge commit with an `X.Y.Z` tag:
187+
10. Push the branch to GitHub:
188+
189+
```
190+
$ git push origin main
191+
```
192+
193+
11. Wait for the ["build" workflow][workflow-build] to finish.
194+
Download the `artifact-checksums-java17-temurin` artifact,
195+
unpack it and verify that the artifact checksums match artifacts built locally:
196+
197+
```
198+
$ unzip artifact-checksums-java17-temurin.zip
199+
$ VERSION=0.1.0-SNAPSHOT ./gradlew primaryPublishJar
200+
$ sha256sum -c java-webauthn-server-artifacts.sha256sum
201+
```
202+
203+
12. Tag the merge commit with an `X.Y.Z` tag:
172204
173205
```
174206
$ git tag -a -s 1.4.0 -m "Release 1.4.0"
175207
```
176208
177209
No tag body needed since that's included in the commit.
178210
179-
11. Publish to Sonatype Nexus:
211+
12. Publish to Sonatype Nexus:
180212
181213
```
182214
$ ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
183215
```
184216
185-
12. Push to GitHub:
217+
13. Push the tag to GitHub:
186218
187219
```
188-
$ git push origin main 1.4.0
220+
$ git push origin 1.4.0
189221
```
190222
191-
13. Make GitHub release.
223+
14. Make GitHub release.
192224
193225
- Use the new tag as the release tag.
194226
- Copy the release notes from `NEWS` into the GitHub release notes; reformat
@@ -197,6 +229,9 @@ Release versions
197229
- Note the JDK version shown by `java -version` in step 6.
198230
For example: `openjdk version "17.0.7" 2023-04-18`.
199231
200-
14. Check that the ["Reproducible binary"
201-
workflow](https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml)
202-
runs and succeeds.
232+
15. Check that the ["Reproducible binary" workflow][workflow-release] runs and succeeds.
233+
234+
235+
[workflow-build]: https://github.com/Yubico/java-webauthn-server/actions/workflows/build.yml
236+
[workflow-release]: https://github.com/Yubico/java-webauthn-server/actions/workflows/release-verify-signatures.yml
237+
[workflow-release-src]: https://github.com/Yubico/java-webauthn-server/blob/main/.github/workflows/release-verify-signatures.yml#L42

settings.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ dependencyResolutionManagement {
1616
create("constraintLibs") {
1717
library("cbor", "com.upokecenter:cbor:[4.5.1,5)")
1818
library("guava", "com.google.guava:guava:[24.1.1,33)")
19-
library("httpclient5", "org.apache.httpcomponents.client5:httpclient5:[5.0.0,6)")
19+
library("httpclient5", "org.apache.httpcomponents.client5", "httpclient5").version {
20+
strictly("[5.0.0,6)")
21+
reject("[5.4-alpha1,5.4.3)")
22+
}
2023
library("slf4j", "org.slf4j:slf4j-api:[1.7.25,3)")
2124

2225
val jacksonVer = version("jackson", "[2.13.2.1,3)")

0 commit comments

Comments
 (0)