Skip to content

Commit 47ceee8

Browse files
committed
Release 2.6.0
`webauthn-server-core`: New features: - Added method `getParsedPublicKey(): java.security.PublicKey` to `RegistrationResult` and `RegisteredCredential`. - Thanks to Jakob Heher (A-SIT) for the contribution, see #299 - Added enum parsing functions: - `AuthenticatorAttachment.fromValue(String): Optional<AuthenticatorAttachment>` - `PublicKeyCredentialType.fromId(String): Optional<PublicKeyCredentialType>` - `ResidentKeyRequirement.fromValue(String): Optional<ResidentKeyRequirement>` - `TokenBindingStatus.fromValue(String): Optional<TokenBindingStatus>` - `UserVerificationRequirement.fromValue(String): Optional<UserVerificationRequirement>` - Added public builder to `CredentialPropertiesOutput`. - Added public factory function `LargeBlobRegistrationOutput.supported(boolean)`. - Added public factory functions to `LargeBlobAuthenticationOutput`. - Added `hints` property to `StartRegistrationOptions`, `StartAssertionOptions`, `PublicKeyCredentialCreationOptions` and `PublicKeyCredentialRequestOptions`, and class `PublicKeyCredentialHint` to support them, to support the `hints` parameter introduced in WebAuthn L3: https://www.w3.org/TR/2023/WD-webauthn-3-20230927/#dom-publickeycredentialcreationoptions-hints - (Experimental) Added option `isSecurePaymentConfirmation(boolean)` to `FinishAssertionOptions`. When set, `RelyingParty.finishAssertion()` will adapt the validation logic for a Secure Payment Confirmation (SPC) response instead of an ordinary WebAuthn response. See the JavaDoc for details. - NOTE: Experimental features may receive breaking changes without a major version increase. `webauthn-server-attestation`: New features: - `FidoMetadataDownloader` now parses the CRLDistributionPoints extension on the application level, so the `com.sun.security.enableCRLDP=true` system property setting is no longer necessary. - Added helper function `CertificateUtil.parseFidoSernumExtension` for parsing serial number from enterprise attestation certificates.
2 parents 504a8e8 + 0cbba57 commit 47ceee8

File tree

60 files changed

+3348
-1098
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+3348
-1098
lines changed

.github/dependabot.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ updates:
1111
# Spotless patch updates are too noisy
1212
- dependency-name: "spotless-plugin-gradle"
1313
update-types: ["version-update:semver-patch"]
14+
- dependency-name: "com.diffplug.spotless:spotless-plugin-gradle"
15+
update-types: ["version-update:semver-patch"]
1416

1517
- package-ecosystem: "github-actions"
1618
directory: "/"

.github/workflows/build.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ jobs:
3333

3434
steps:
3535
- name: Check out code
36-
uses: actions/checkout@v3
36+
uses: actions/checkout@v4
3737

3838
- name: Set up JDK 17
39-
uses: actions/setup-java@v3
39+
uses: actions/setup-java@v4
4040
with:
4141
java-version: 17
4242
distribution: ${{ matrix.distribution }}
@@ -45,7 +45,7 @@ jobs:
4545
run: ./gradlew clean testClasses
4646

4747
- name: Set up JDK ${{ matrix.java }}
48-
uses: actions/setup-java@v3
48+
uses: actions/setup-java@v4
4949
with:
5050
java-version: ${{ matrix.java }}
5151
distribution: ${{ matrix.distribution }}
@@ -55,7 +55,7 @@ jobs:
5555

5656
- name: Archive HTML test report on failure
5757
if: ${{ failure() }}
58-
uses: actions/upload-artifact@v3
58+
uses: actions/upload-artifact@v4
5959
with:
6060
name: test-reports-java17-java${{ matrix.java }}-${{ matrix.distribution }}-html
6161
path: "*/build/reports/**"
@@ -68,14 +68,14 @@ jobs:
6868

6969
- name: Archive HTML test report
7070
if: ${{ always() }}
71-
uses: actions/upload-artifact@v3
71+
uses: actions/upload-artifact@v4
7272
with:
7373
name: test-reports-java${{ matrix.java }}-${{ matrix.distribution }}-html
7474
path: "*/build/reports/**"
7575

7676
- name: Archive JUnit test report
7777
if: ${{ always() }}
78-
uses: actions/upload-artifact@v3
78+
uses: actions/upload-artifact@v4
7979
with:
8080
name: test-reports-java${{ matrix.java }}-${{ matrix.distribution }}-xml
8181
path: "*/build/test-results/**/*.xml"
@@ -100,7 +100,7 @@ jobs:
100100

101101
steps:
102102
- name: Download artifacts
103-
uses: actions/download-artifact@v3
103+
uses: actions/download-artifact@v4
104104
with:
105105
name: test-reports-java${{ needs.test.outputs.report-java }}-${{ needs.test.outputs.report-dist }}-xml
106106

.github/workflows/code-formatting.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ jobs:
2121

2222
steps:
2323
- name: Check out code
24-
uses: actions/checkout@v3
24+
uses: actions/checkout@v4
2525

2626
- name: Set up JDK
27-
uses: actions/setup-java@v3
27+
uses: actions/setup-java@v4
2828
with:
2929
java-version: ${{ matrix.java }}
3030
distribution: ${{ matrix.distribution }}

.github/workflows/codeql-analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ jobs:
2121

2222
steps:
2323
- name: Checkout repository
24-
uses: actions/checkout@v3
24+
uses: actions/checkout@v4
2525

26-
- uses: actions/setup-java@v3
26+
- uses: actions/setup-java@v4
2727
with:
2828
java-version: 17
2929
distribution: temurin
3030

3131
# Initializes the CodeQL tools for scanning.
3232
- name: Initialize CodeQL
33-
uses: github/codeql-action/init@v2
33+
uses: github/codeql-action/init@v3
3434
with:
3535
languages: java
3636

@@ -39,4 +39,4 @@ jobs:
3939
./gradlew jar
4040
4141
- name: Perform CodeQL Analysis
42-
uses: github/codeql-action/analyze@v2
42+
uses: github/codeql-action/analyze@v3

.github/workflows/coverage.yml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ name: Test coverage
44
on:
55
push:
66
branches:
7-
- main
8-
- 'release-*'
7+
- main
8+
- dependabot/gradle/info.solidsoft.gradle.pitest-gradle-pitest-plugin-*
9+
- 'release-*'
910

1011
jobs:
1112
test:
@@ -18,10 +19,10 @@ jobs:
1819

1920
steps:
2021
- name: Check out code
21-
uses: actions/checkout@v3
22+
uses: actions/checkout@v4
2223

2324
- name: Set up JDK
24-
uses: actions/setup-java@v3
25+
uses: actions/setup-java@v4
2526
with:
2627
java-version: 17
2728
distribution: temurin
@@ -30,7 +31,7 @@ jobs:
3031
run: ./gradlew pitestMerge
3132

3233
- name: Archive test reports
33-
uses: actions/upload-artifact@v3
34+
uses: actions/upload-artifact@v4
3435
with:
3536
name: pitest-reports-${{ github.sha }}
3637
path: "*/build/reports/pitest/**"
@@ -46,16 +47,8 @@ jobs:
4647
done
4748
sed "s/{shortcommit}/${GITHUB_SHA:0:8}/g;s/{commit}/${GITHUB_SHA}/g;s#{repo}#${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}#g" .github/workflows/coverage/index.html.template > build/gh-pages/index.html
4849
49-
- name: Create coverage badge
50-
if: ${{ github.ref == 'refs/heads/main' }}
51-
# This creates a file that defines a [Shields.io endpoint badge](https://shields.io/endpoint)
52-
# which we can then include in the project README.
53-
uses: ./.github/actions/pit-results-badge
54-
with:
55-
output-file: build/gh-pages/coverage-badge.json
56-
5750
- name: Check out GitHub Pages branch
58-
uses: actions/checkout@v3
51+
uses: actions/checkout@v4
5952
with:
6053
ref: gh-pages
6154
clean: false
@@ -71,6 +64,14 @@ jobs:
7164
prev-commit: ${{ env.PREV_COMMIT }}
7265
prev-mutations-file: prev-mutations.xml
7366

67+
- name: Create coverage badge
68+
if: ${{ github.ref == 'refs/heads/main' }}
69+
# This creates a file that defines a [Shields.io endpoint badge](https://shields.io/endpoint)
70+
# which we can then include in the project README.
71+
uses: ./.github/actions/pit-results-badge
72+
with:
73+
output-file: build/gh-pages/coverage-badge.json
74+
7475
- name: Push to GitHub Pages
7576
if: ${{ github.ref == 'refs/heads/main' }}
7677
run: |

.github/workflows/release-verify-signatures.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
until wget https://repo1.maven.org/maven2/com/yubico/webauthn-server-core/${{ github.ref_name }}/webauthn-server-core-${{ github.ref_name }}.jar.asc; do sleep 180; done
2525
2626
- name: Store keyring and signatures as artifact
27-
uses: actions/upload-artifact@v3
27+
uses: actions/upload-artifact@v4
2828
with:
2929
name: keyring-and-signatures
3030
retention-days: 1
@@ -44,12 +44,12 @@ jobs:
4444

4545
steps:
4646
- name: check out code
47-
uses: actions/checkout@v3
47+
uses: actions/checkout@v4
4848
with:
4949
ref: ${{ github.ref_name }}
5050

5151
- name: Set up JDK
52-
uses: actions/setup-java@v3
52+
uses: actions/setup-java@v4
5353
with:
5454
java-version: ${{ matrix.java }}
5555
distribution: ${{ matrix.distribution }}
@@ -68,7 +68,7 @@ jobs:
6868
done
6969
7070
- name: Retrieve keyring and signatures
71-
uses: actions/download-artifact@v3
71+
uses: actions/download-artifact@v4
7272
with:
7373
name: keyring-and-signatures
7474

@@ -87,7 +87,7 @@ jobs:
8787

8888
steps:
8989
- name: Retrieve signatures
90-
uses: actions/download-artifact@v3
90+
uses: actions/download-artifact@v4
9191
with:
9292
name: keyring-and-signatures
9393

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ out/
1111
*.iws
1212
.attach_pid*
1313

14+
# VS Code
15+
.vscode/
16+
1417
# Mac
1518
.DS_Store
1619

NEWS

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,46 @@
1+
== Version 2.6.0 ==
2+
3+
`webauthn-server-core`:
4+
5+
New features:
6+
7+
* Added method `getParsedPublicKey(): java.security.PublicKey` to
8+
`RegistrationResult` and `RegisteredCredential`.
9+
** Thanks to Jakob Heher (A-SIT) for the contribution, see
10+
https://github.com/Yubico/java-webauthn-server/pull/299
11+
* Added enum parsing functions:
12+
** `AuthenticatorAttachment.fromValue(String): Optional<AuthenticatorAttachment>`
13+
** `PublicKeyCredentialType.fromId(String): Optional<PublicKeyCredentialType>`
14+
** `ResidentKeyRequirement.fromValue(String): Optional<ResidentKeyRequirement>`
15+
** `TokenBindingStatus.fromValue(String): Optional<TokenBindingStatus>`
16+
** `UserVerificationRequirement.fromValue(String): Optional<UserVerificationRequirement>`
17+
* Added public builder to `CredentialPropertiesOutput`.
18+
* Added public factory function
19+
`LargeBlobRegistrationOutput.supported(boolean)`.
20+
* Added public factory functions to `LargeBlobAuthenticationOutput`.
21+
* Added `hints` property to `StartRegistrationOptions`, `StartAssertionOptions`,
22+
`PublicKeyCredentialCreationOptions` and `PublicKeyCredentialRequestOptions`,
23+
and class `PublicKeyCredentialHint` to support them, to support the `hints`
24+
parameter introduced in WebAuthn L3:
25+
https://www.w3.org/TR/2023/WD-webauthn-3-20230927/#dom-publickeycredentialcreationoptions-hints
26+
* (Experimental) Added option `isSecurePaymentConfirmation(boolean)` to
27+
`FinishAssertionOptions`. When set, `RelyingParty.finishAssertion()` will
28+
adapt the validation logic for a Secure Payment Confirmation (SPC) response
29+
instead of an ordinary WebAuthn response. See the JavaDoc for details.
30+
** NOTE: Experimental features may receive breaking changes without a major
31+
version increase.
32+
33+
`webauthn-server-attestation`:
34+
35+
New features:
36+
37+
* `FidoMetadataDownloader` now parses the CRLDistributionPoints extension on the
38+
application level, so the `com.sun.security.enableCRLDP=true` system property
39+
setting is no longer necessary.
40+
* Added helper function `CertificateUtil.parseFidoSernumExtension` for parsing
41+
serial number from enterprise attestation certificates.
42+
43+
144
== Version 2.5.4 ==
245

346
`webauthn-server-attestation`:

0 commit comments

Comments
 (0)