Skip to content

Experimental release 2.7.0-alpha1

Pre-release
Pre-release
Compare
Choose a tag to compare
@emlun emlun released this 30 Jan 14:16
2.7.0-alpha1
b1fa6ca

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. 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.

Artifacts built with openjdk version "17.0.13" 2024-10-15.