Skip to content

Commit 4b5df78

Browse files
committed
Release 2.8.0
`webauthn-server-core`: New features: - Added JavaDoc to `COSEAlgorithmIdentifier` constants. - Added support for Ed448 signatures. - New constants `COSEAlgorithmIdentifier.Ed25519`, `COSEAlgorithmIdentifier.Ed448` and `PublicKeyCredentialParameters.Ed448` - (Experimental) Added a new suite of interfaces, starting with `CredentialRepositoryV2`. `RelyingParty` can now be configured with a `CredentialRepositoryV2` instance instead of a `CredentialRepository` instance. This changes the result of the `RelyingParty` builder to `RelyingPartyV2`. `CredentialRepositoryV2` and `RelyingPartyV2` enable a suite of new features: - `CredentialRepositoryV2` does not assume that the application has usernames, instead username support is modular. In addition to the `CredentialRepositoryV2`, `RelyingPartyV2` can be optionally configured with a `UsernameRepository` as well. If a `UsernameRepository` is not set, then `RelyingPartyV2.startAssertion(StartAssertionOptions)` will fail at runtime if `StartAssertionOptions.username` is set. - `CredentialRepositoryV2` uses a new interface `CredentialRecord` to represent registered credentials, instead of the concrete `RegisteredCredential` class (although `RegisteredCredential` also implements `CredentialRecord`). This provides implementations greater flexibility while also automating the type conversion to `PublicKeyCredentialDescriptor` needed in `startRegistration()` and `startAssertion()`. - `RelyingPartyV2.finishAssertion()` returns a new type `AssertionResultV2` with a new method `getCredential()`, which returns the `CredentialRecord` that was verified. The return type of `getCredential()` is generic and preserves the concrete type of `CredentialRecord` returned by the `CredentialRepositoryV2` implementation. - NOTE: Experimental features may receive breaking changes without a major version increase. - (Experimental) Added property `RegisteredCredential.transports`. - NOTE: Experimental features may receive breaking changes without a major version increase. `webauthn-server-attestation`: New features: - Updated SupportedCtapOptions to version 2.2 of CTAP spec. - New field `perCredMgmtRO` Fixes: - Fixed parsing logic of tri-valued Boolean SupportedCtapOptions properties. See: #382
2 parents 703179a + 491b9a3 commit 4b5df78

File tree

63 files changed

+12587
-596
lines changed

Some content is hidden

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

63 files changed

+12587
-596
lines changed

.github/workflows/build.yml

Lines changed: 8 additions & 8 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@v4
36+
uses: actions/checkout@v6
3737

3838
- name: Set up JDK 17
39-
uses: actions/setup-java@v4
39+
uses: actions/setup-java@v5
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@v4
48+
uses: actions/setup-java@v5
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@v4
58+
uses: actions/upload-artifact@v5
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@v4
71+
uses: actions/upload-artifact@v5
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@v4
78+
uses: actions/upload-artifact@v5
7979
with:
8080
name: test-reports-java${{ matrix.java }}-${{ matrix.distribution }}-xml
8181
path: "*/build/test-results/**/*.xml"
@@ -90,7 +90,7 @@ jobs:
9090
9191
- name: Archive artifact checksums
9292
if: ${{ matrix.java != 8 }} # JDK 8 does not produce reproducible binaries
93-
uses: actions/upload-artifact@v4
93+
uses: actions/upload-artifact@v5
9494
with:
9595
name: artifact-checksums-java${{ matrix.java }}-${{ matrix.distribution }}
9696
path: java-webauthn-server-artifacts.sha256sum
@@ -107,7 +107,7 @@ jobs:
107107

108108
steps:
109109
- name: Download artifacts
110-
uses: actions/download-artifact@v4
110+
uses: actions/download-artifact@v6
111111
with:
112112
name: test-reports-java${{ needs.test.outputs.report-java }}-${{ needs.test.outputs.report-dist }}-xml
113113

.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@v4
24+
uses: actions/checkout@v6
2525

2626
- name: Set up JDK
27-
uses: actions/setup-java@v4
27+
uses: actions/setup-java@v5
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@v4
24+
uses: actions/checkout@v6
2525

26-
- uses: actions/setup-java@v4
26+
- uses: actions/setup-java@v5
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@v3
33+
uses: github/codeql-action/init@v4
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@v3
42+
uses: github/codeql-action/analyze@v4

.github/workflows/coverage.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ jobs:
1919

2020
steps:
2121
- name: Check out code
22-
uses: actions/checkout@v4
22+
uses: actions/checkout@v6
2323

2424
- name: Set up JDK
25-
uses: actions/setup-java@v4
25+
uses: actions/setup-java@v5
2626
with:
2727
java-version: 17
2828
distribution: temurin
@@ -31,7 +31,7 @@ jobs:
3131
run: ./gradlew pitestMerge
3232

3333
- name: Archive test reports
34-
uses: actions/upload-artifact@v4
34+
uses: actions/upload-artifact@v5
3535
with:
3636
name: pitest-reports-${{ github.sha }}
3737
path: "*/build/reports/pitest/**"
@@ -48,7 +48,7 @@ jobs:
4848
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
4949
5050
- name: Check out GitHub Pages branch
51-
uses: actions/checkout@v4
51+
uses: actions/checkout@v6
5252
with:
5353
ref: gh-pages
5454
clean: false

.github/workflows/integration-test.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ jobs:
2626

2727
steps:
2828
- name: Check out code
29-
uses: actions/checkout@v4
29+
uses: actions/checkout@v6
3030

3131
- name: Set up JDK ${{ matrix.java }}
32-
uses: actions/setup-java@v4
32+
uses: actions/setup-java@v5
3333
with:
3434
java-version: ${{ matrix.java }}
3535
distribution: ${{ matrix.distribution }}
@@ -39,14 +39,14 @@ jobs:
3939

4040
- name: Archive HTML test report
4141
if: ${{ always() }}
42-
uses: actions/upload-artifact@v4
42+
uses: actions/upload-artifact@v5
4343
with:
4444
name: test-reports-java${{ matrix.java }}-${{ matrix.distribution }}-html
4545
path: "*/build/reports/**"
4646

4747
- name: Archive JUnit test report
4848
if: ${{ always() }}
49-
uses: actions/upload-artifact@v4
49+
uses: actions/upload-artifact@v5
5050
with:
5151
name: test-reports-java${{ matrix.java }}-${{ matrix.distribution }}-xml
5252
path: "*/build/test-results/**/*.xml"

.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@v4
27+
uses: actions/upload-artifact@v5
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@v4
47+
uses: actions/checkout@v6
4848
with:
4949
ref: ${{ github.ref_name }}
5050

5151
- name: Set up JDK
52-
uses: actions/setup-java@v4
52+
uses: actions/setup-java@v5
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@v4
71+
uses: actions/download-artifact@v6
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@v4
90+
uses: actions/download-artifact@v6
9191
with:
9292
name: keyring-and-signatures
9393

NEWS

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,55 @@
1+
== Version 2.8.0 ==
2+
3+
`webauthn-server-core`:
4+
5+
New features:
6+
7+
* Added JavaDoc to `COSEAlgorithmIdentifier` constants.
8+
* Added support for Ed448 signatures.
9+
* New constants `COSEAlgorithmIdentifier.Ed25519`,
10+
`COSEAlgorithmIdentifier.Ed448` and `PublicKeyCredentialParameters.Ed448`
11+
* (Experimental) Added a new suite of interfaces, starting with
12+
`CredentialRepositoryV2`. `RelyingParty` can now be configured with a
13+
`CredentialRepositoryV2` instance instead of a `CredentialRepository`
14+
instance. This changes the result of the `RelyingParty` builder to
15+
`RelyingPartyV2`. `CredentialRepositoryV2` and `RelyingPartyV2` enable a suite
16+
of new features:
17+
** `CredentialRepositoryV2` does not assume that the application has usernames,
18+
instead username support is modular. In addition to the
19+
`CredentialRepositoryV2`, `RelyingPartyV2` can be optionally configured with
20+
a `UsernameRepository` as well. If a `UsernameRepository` is not set, then
21+
`RelyingPartyV2.startAssertion(StartAssertionOptions)` will fail at runtime
22+
if `StartAssertionOptions.username` is set.
23+
** `CredentialRepositoryV2` uses a new interface `CredentialRecord` to
24+
represent registered credentials, instead of the concrete
25+
`RegisteredCredential` class (although `RegisteredCredential` also
26+
implements `CredentialRecord`). This provides implementations greater
27+
flexibility while also automating the type conversion to
28+
`PublicKeyCredentialDescriptor` needed in `startRegistration()` and
29+
`startAssertion()`.
30+
** `RelyingPartyV2.finishAssertion()` returns a new type `AssertionResultV2`
31+
with a new method `getCredential()`, which returns the `CredentialRecord`
32+
that was verified. The return type of `getCredential()` is generic and
33+
preserves the concrete type of `CredentialRecord` returned by the
34+
`CredentialRepositoryV2` implementation.
35+
** NOTE: Experimental features may receive breaking changes without a major
36+
version increase.
37+
* (Experimental) Added property `RegisteredCredential.transports`.
38+
** NOTE: Experimental features may receive breaking changes without a major
39+
version increase.
40+
41+
`webauthn-server-attestation`:
42+
43+
New features:
44+
45+
* Updated SupportedCtapOptions to version 2.2 of CTAP spec.
46+
** New field `perCredMgmtRO`
47+
48+
Fixes:
49+
50+
* Fixed parsing logic of tri-valued Boolean SupportedCtapOptions properties.
51+
See: https://github.com/Yubico/java-webauthn-server/issues/382
52+
153
== Version 2.7.0 ==
254

355
New features:

0 commit comments

Comments
 (0)