0.3.0
Pre-release
Pre-release
With this release, the library is getting close to mature enough for a production-ready release. There may be breaking API changes necessary before 1.0, but none are planned.
Changes:
- Major API overhaul; public API changes include but are not limited to:
- Reorganised package structure
CredentialRepository.getCredentialIdsForUsername(String)now returnsSetinstead ofList- Most data classes now expose a builder instead of a public constructor
- Shortcut constants added to
COSEAlgorithmIdentifierandPublicKeyCredentialParameters - Exception
U2fBadConfigurationExceptionrenamed toBadConfigurationException RelyingParty.startRegistrationnow accepts oneStartRegistrationOptionsparameter instead of several parametersRelyingParty.finishRegistrationnow accepts oneFinishRegistrationOptionsparameter instead of several parametersRelyingParty.startAssertionnow accepts oneStartAssertionOptionsparameter instead of several parametersRelyingParty.finishAssertionnow accepts oneFinishAssertionOptionsparameter instead of several parametersRelyingParty.finishRegistrationnow throws checkedRegistrationFailedExceptioninstead ofIllegalArgumentExceptionon most failuresRelyingParty.finishAssertionnow throws checkedAssertionFailedExceptioninstead ofIllegalArgumentExceptionon most failures- Class
MetadataResolverreplaced with interface - Constructor
CollectedClientData(JsonNode)deleted - Type of fields
StartAssertionOptions.extensions,StartRegistrationOptions.extensionsandPublicKeyCredential.clientExtensionOutputsnarrowed fromJsonNodetoObjectNode - Parameters
StartRegistrationOptions.excludeCredentialsandStartAssertionOptions.allowCredentialsdeleted; they are now discovered automatically from theCredentialRepository. If custom control overexcludeCredentialsorallowCredentialsis needed, modify thePublicKeyCredentialCreationOptionsorPublicKeyCredentialRequestOptionsobject manually. COSEAlgorithmIdentifieris now an actual enum- Extensions are now passed and returned as domain objects instead of as Jackson types
- Type parameter added to
PublicKeyCredentialto express extensions type - Fields
CollectedClientData.authenticatorExtensionsand.clientExtensionsdeleted
- Fixed a bug in
AuthenticatorDataFlagsthat caused theED(0x80) flag to never be set - All classes in
com.yubico.webauthn.datacan now be serialized and deserialized using Jackson- JSON output has been slightly changed:
AttestationObject,AuthenticatorDataandCollectedClientDatanow serialize back to Base64Url encoded bytes instead of to JSON objects- Member
_attestationObjectremoved from serializedAuthenticatorAttestationResponse - Member
authenticatorDataremoved from serializedAuthenticatorAttestationResponse
- JSON output has been slightly changed:
- New methods
ByteArray.size(): intand.isEmpty(): boolean ByteArrayis nowComparableto itself- Added support for
appidextension