Releases: Yubico/java-webauthn-server
Version 2.8.0
New features:
- Added JavaDoc to
COSEAlgorithmIdentifierconstants. - Added support for Ed448 signatures.
- New constants
COSEAlgorithmIdentifier.Ed25519,COSEAlgorithmIdentifier.Ed448andPublicKeyCredentialParameters.Ed448 - (Experimental) Added a new suite of interfaces, starting with
CredentialRepositoryV2.RelyingPartycan now be configured with aCredentialRepositoryV2instance instead of aCredentialRepositoryinstance. This changes the result of theRelyingPartybuilder toRelyingPartyV2.CredentialRepositoryV2andRelyingPartyV2enable a suite of new features:CredentialRepositoryV2does not assume that the application has usernames, instead username support is modular. In addition to theCredentialRepositoryV2,RelyingPartyV2can be optionally configured with aUsernameRepositoryas well. If aUsernameRepositoryis not set, thenRelyingPartyV2.startAssertion(StartAssertionOptions)will fail at runtime ifStartAssertionOptions.usernameis set.CredentialRepositoryV2uses a new interfaceCredentialRecordto represent registered credentials, instead of the concreteRegisteredCredentialclass (althoughRegisteredCredentialalso implementsCredentialRecord). This provides implementations greater flexibility while also automating the type conversion toPublicKeyCredentialDescriptorneeded instartRegistration()andstartAssertion().RelyingPartyV2.finishAssertion()returns a new typeAssertionResultV2with a new methodgetCredential(), which returns theCredentialRecordthat was verified. The return type ofgetCredential()is generic and preserves the concrete type ofCredentialRecordreturned by theCredentialRepositoryV2implementation.- 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
- New field
Fixes:
- Fixed parsing logic of tri-valued Boolean SupportedCtapOptions properties. See: #382
Artifacts built with openjdk 17.0.15 2025-04-15.
Note: Artifacts are signed by a new key. See Yubico Software Signing.
Pre-release 2.8.0-RC1
Changes since 2.8.0-alpha3
webauthn-server-core:
New features:
- Added JavaDoc to
COSEAlgorithmIdentifierconstants. - Added support for Ed448 signatures.
- New constants
COSEAlgorithmIdentifier.Ed25519,COSEAlgorithmIdentifier.Ed448andPublicKeyCredentialParameters.Ed448
webauthn-server-attestation:
New features:
- Updated SupportedCtapOptions to version 2.2 of CTAP spec.
- New field
perCredMgmtRO
- New field
Fixes:
- Fixed parsing logic of tri-valued Boolean SupportedCtapOptions properties. See: #382
Changes since 2.7.0
webauthn-server-core:
New features:
- (Experimental) Added a new suite of interfaces, starting with
CredentialRepositoryV2.RelyingPartycan now be configured with aCredentialRepositoryV2instance instead of aCredentialRepositoryinstance. This changes the result of theRelyingPartybuilder toRelyingPartyV2.CredentialRepositoryV2andRelyingPartyV2enable a suite of new features:CredentialRepositoryV2does not assume that the application has usernames, instead username support is modular. In addition to theCredentialRepositoryV2,RelyingPartyV2can be optionally configured with aUsernameRepositoryas well. If aUsernameRepositoryis not set, thenRelyingPartyV2.startAssertion(StartAssertionOptions)will fail at runtime ifStartAssertionOptions.usernameis set.CredentialRepositoryV2uses a new interfaceCredentialRecordto represent registered credentials, instead of the concreteRegisteredCredentialclass (althoughRegisteredCredentialalso implementsCredentialRecord). This provides implementations greater flexibility while also automating the type conversion toPublicKeyCredentialDescriptorneeded instartRegistration()andstartAssertion().RelyingPartyV2.finishAssertion()returns a new typeAssertionResultV2with a new methodgetCredential(), which returns theCredentialRecordthat was verified. The return type ofgetCredential()is generic and preserves the concrete type ofCredentialRecordreturned by theCredentialRepositoryV2implementation.- 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.
Artifacts built with openjdk version "17.0.15" 2025-04-15.
Note: Artifacts are signed by a new key. See Yubico Software Signing.
Version 2.7.0
New features:
- Added overloaded setter
RelyingPartyBuilder.origins(Optional<Set<String>>). - Added support for the CTAP2
credProtectextension. - Added support for the
prfextension. - (Experimental) Added option
FinishRegistrationOptions.isConditionalCreateto allow UP=0 in registration response for registration ceremonies withmediation: "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.
Artifacts built with openjdk version "17.0.15" 2025-04-15.
Experimental release 2.8.0-alpha3
Ported changes from pre-release 2.7.0-RC3:
Fixes:
- Excluded CVE-2025-27820 vulnerable versions of Apache httpclient5 from dependency resolution. Note that this might only affect consumers using Gradle module metadata.
Artifacts built with openjdk version "17.0.15" 2025-04-15.
Pre-release 2.7.0-RC3
Fixes:
- Excluded CVE-2025-27820 vulnerable versions of Apache httpclient5 from dependency resolution. Note that this might only affect consumers using Gradle module metadata.
Artifacts built with openjdk version "17.0.15" 2025-04-15.
Experimental release 2.8.0-alpha2
Ported changes from pre-release 2.7.0-RC2:
Fixes:
- Fixed JSON encoding of
credProtectextension inputs.
Artifacts built with openjdk version "17.0.14" 2025-01-21.
Pre-release 2.7.0-RC2
Fixes:
- Fixed JSON encoding of
credProtectextension inputs.
Artifacts built with openjdk version "17.0.14" 2025-01-21.
Experimental release 2.8.0-alpha1
Re-introduced changes that were reverted between 2.7.0-alpha1 and 2.7.0-RC1:
New features:
- (Experimental) Added a new suite of interfaces, starting with
CredentialRepositoryV2.RelyingPartycan now be configured with aCredentialRepositoryV2instance instead of aCredentialRepositoryinstance. This changes the result of theRelyingPartybuilder toRelyingPartyV2.CredentialRepositoryV2andRelyingPartyV2enable a suite of new features:CredentialRepositoryV2does not assume that the application has usernames, instead username support is modular. In addition to theCredentialRepositoryV2,RelyingPartyV2can be optionally configured with aUsernameRepositoryas well. If aUsernameRepositoryis not set, thenRelyingPartyV2.startAssertion(StartAssertionOptions)will fail at runtime ifStartAssertionOptions.usernameis set.CredentialRepositoryV2uses a new interfaceCredentialRecordto represent registered credentials, instead of the concreteRegisteredCredentialclass (althoughRegisteredCredentialalso implementsCredentialRecord). This provides implementations greater flexibility while also automating the type conversion toPublicKeyCredentialDescriptorneeded instartRegistration()andstartAssertion().RelyingPartyV2.finishAssertion()returns a new typeAssertionResultV2with a new methodgetCredential(), which returns theCredentialRecordthat was verified. The return type ofgetCredential()is generic and preserves the concrete type ofCredentialRecordreturned by theCredentialRepositoryV2implementation.- 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.
Artifacts built with openjdk version "17.0.14" 2025-01-21.
Pre-release 2.7.0-RC1
Changes since 2.7.0-alpha1
Breaking changes:
- Removed the suite of experimental interfaces related with
CredentialRepositoryV2. These will be postponed to minor release 2.8 instead. - Removed property
RegisteredCredential.transports.
Changes since 2.6.0
New features:
- Added overloaded setter
RelyingPartyBuilder.origins(Optional<Set<String>>). - Added support for the CTAP2
credProtectextension. - Added support for the
prfextension. - (Experimental) Added option
FinishRegistrationOptions.isConditionalCreateto allow UP=0 in registration response for registration ceremonies withmediation: "conditional".- NOTE: Experimental features may receive breaking changes without a major version increase.
Artifacts built with openjdk version "17.0.14" 2025-01-21.
Experimental release 2.7.0-alpha1
Re-introduced changes that were reverted between 2.6.0-alpha8 and 2.6.0-RC1:
- (Experimental) Added a new suite of interfaces, starting with
CredentialRepositoryV2.RelyingPartycan now be configured with aCredentialRepositoryV2instance instead of aCredentialRepositoryinstance. This changes the result of theRelyingPartybuilder toRelyingPartyV2.CredentialRepositoryV2andRelyingPartyV2enable a suite of new features:CredentialRepositoryV2does not assume that the application has usernames, instead username support is modular. In addition to theCredentialRepositoryV2,RelyingPartyV2can be optionally configured with aUsernameRepositoryas well. If aUsernameRepositoryis not set, thenRelyingPartyV2.startAssertion(StartAssertionOptions)will fail at runtime ifStartAssertionOptions.usernameis set.CredentialRepositoryV2uses a new interfaceCredentialRecordto represent registered credentials, instead of the concreteRegisteredCredentialclass (althoughRegisteredCredentialalso implementsCredentialRecord). This provides implementations greater flexibility while also automating the type conversion toPublicKeyCredentialDescriptorneeded instartRegistration()andstartAssertion().RelyingPartyV2.finishAssertion()returns a new typeAssertionResultV2with a new methodgetCredential(), which returns theCredentialRecordthat was verified. The return type ofgetCredential()is generic and preserves the concrete type ofCredentialRecordreturned by theCredentialRepositoryV2implementation.- 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.
Artifacts built with openjdk version "17.0.13" 2024-10-15.