Skip to content

Commit fed0930

Browse files
committed
Release 2.5.2
Fixes: - Allow unknown properties in `credProps` client extension output.
2 parents a3698be + 821e211 commit fed0930

File tree

7 files changed

+89
-63
lines changed

7 files changed

+89
-63
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939

4040
strategy:
4141
matrix:
42-
java: ["17.0.7"]
42+
java: ["17.0.10"]
4343
distribution: [temurin, zulu, microsoft]
4444

4545
steps:

NEWS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
== Version 2.5.2 ==
2+
3+
Fixes:
4+
5+
* Allow unknown properties in `credProps` client extension output.
6+
7+
18
== Version 2.5.1 ==
29

310
Changes:

README

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

webauthn-server-core/src/main/java/com/yubico/webauthn/data/ExtensionOutputs.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,15 @@
44
import java.util.Set;
55

66
public interface ExtensionOutputs {
7-
/** Returns a {@link Set} of the extension IDs for which an extension output is present. */
7+
/**
8+
* Returns a {@link Set} of recognized extension IDs for which an extension output is present.
9+
*
10+
* <p>This only includes extension identifiers recognized by the java-webauthn-server library.
11+
* Recognized extensions can be found as the properties of {@link
12+
* ClientRegistrationExtensionOutputs} for registration ceremonies, and {@link
13+
* ClientAssertionExtensionOutputs} for authentication ceremonies. Unknown extension identifiers
14+
* are silently ignored.
15+
*/
816
@JsonIgnore
917
Set<String> getExtensionIds();
1018
}

webauthn-server-core/src/main/java/com/yubico/webauthn/data/Extensions.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.yubico.webauthn.data;
22

33
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
45
import com.fasterxml.jackson.annotation.JsonProperty;
56
import com.fasterxml.jackson.annotation.JsonValue;
67
import com.upokecenter.cbor.CBORObject;
@@ -63,6 +64,7 @@ public static class CredentialProperties {
6364
* Credential Properties Extension (credProps)</a>
6465
*/
6566
@Value
67+
@JsonIgnoreProperties(ignoreUnknown = true)
6668
public static class CredentialPropertiesOutput {
6769
@JsonProperty("rk")
6870
private final Boolean rk;

webauthn-server-core/src/test/scala/com/yubico/webauthn/RelyingPartyRegistrationSpec.scala

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,21 @@ class RelyingPartyRegistrationSpec
258258
},
259259
"clientExtensionResults": {
260260
"appidExclude": true,
261-
"org.example.foo": "bar"
261+
"org.example.foo": "bar",
262+
"credProps": {
263+
"rk": false,
264+
"authenticatorDisplayName": "My passkey",
265+
"unknownProperty": ["unknown-value"]
266+
}
262267
}
263268
}""")
264269
pkc.getClientExtensionResults.getExtensionIds should contain(
265270
"appidExclude"
266271
)
272+
pkc.getClientExtensionResults.getExtensionIds should contain(
273+
"credProps"
274+
)
275+
pkc.getClientExtensionResults.getExtensionIds should not contain ("org.example.foo")
267276
}
268277
}
269278

webauthn-server-demo/README

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ layer.
4444
This layer manages the general architecture of the system, and is where most
4545
business logic and integration code would go. The demo server implements the
4646
"persistent" storage of users and credential registrations - the
47-
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.1/com/yubico/webauthn/CredentialRepository.html[`CredentialRepository`]
47+
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.2/com/yubico/webauthn/CredentialRepository.html[`CredentialRepository`]
4848
integration point - as the
4949
link:src/main/java/demo/webauthn/InMemoryRegistrationStorage.java[`InMemoryRegistrationStorage`]
5050
class, which simply keeps them stored in memory for a limited time. The
@@ -58,7 +58,7 @@ would be specific to a particular Relying Party (RP) would go in this layer.
5858
- The server layer in turn calls the *library layer*, which is where the
5959
link:../webauthn-server-core/[`webauthn-server-core`]
6060
library gets involved. The entry point into the library is the
61-
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.1/com/yubico/webauthn/RelyingParty.html[`RelyingParty`]
61+
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.2/com/yubico/webauthn/RelyingParty.html[`RelyingParty`]
6262
class.
6363
+
6464
This layer implements the Web Authentication
@@ -69,11 +69,11 @@ and exposes integration points for storage of challenges and credentials. Some
6969
notable integration points are:
7070
+
7171
** The library user must provide an implementation of the
72-
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.1/com/yubico/webauthn/CredentialRepository.html[`CredentialRepository`]
72+
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.2/com/yubico/webauthn/CredentialRepository.html[`CredentialRepository`]
7373
interface to use for looking up stored public keys, user handles and signature
7474
counters.
7575
** The library user can optionally provide an instance of the
76-
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.1/com/yubico/webauthn/attestation/AttestationTrustSource.html[`AttestationTrustSource`]
76+
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/2.5.2/com/yubico/webauthn/attestation/AttestationTrustSource.html[`AttestationTrustSource`]
7777
interface to enable identification and validation of authenticator models. This
7878
instance is then used to look up trusted attestation root certificates. The
7979
link:../webauthn-server-attestation/[`webauthn-server-attestation`]
@@ -158,7 +158,7 @@ correct environment.
158158
Authentication demo'`
159159

160160
- `YUBICO_WEBAUTHN_USE_FIDO_MDS`: If set to `true` (case-insensitive), use
161-
https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-attestation/2.5.1/com/yubico/fido/metadata/FidoMetadataService.html[`FidoMetadataService`]
161+
https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-attestation/2.5.2/com/yubico/fido/metadata/FidoMetadataService.html[`FidoMetadataService`]
162162
from the link:../webauthn-server-attestation[`webauthn-server-attestation`]
163163
module as a source of attestation data in addition to the static JSON file
164164
bundled with the demo. This will write cache files to the

0 commit comments

Comments
 (0)