Yubico / java-webauthn-server

Server-side Web Authentication library for Java https://www.w3.org/TR/webauthn/#rp-operations
Other
469 stars 143 forks source link

Exception in finish registration #188

Closed aravjeru closed 2 years ago

aravjeru commented 2 years ago

When i'm registering my FIDO2 key on the demo app, i see the following error on the UI:

{ "messages": [ "Attestation verification failed; further error message(s) were unfortunately lost to an internal server error." ] }

And in the logs i see this error:

java.lang.IllegalStateException: Not a map or array at com.upokecenter.cbor.CBORObject.getValues(CBORObject.java:532) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:689) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774) ... 81 common frames omitted Wrapped by: com.fasterxml.jackson.databind.JsonMappingException: Not a map or array (through reference chain: demo.webauthn.WebAuthnServer$SuccessfulRegistrationResult["authData"]->com.upokecenter.cbor.CBORObject["values"]->java.util.TreeMap$Values[0]->com.upokecenter.cbor.CBORObject["values"]) at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:392) at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:351) at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:316) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:782) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:145) at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107) at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) at com.fasterxml.jackson.databind.ser.std.ReferenceTypeSerializer.serialize(ReferenceTypeSerializer.java:386) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3183) at com.fasterxml.jackson.core.base.GeneratorBase.writeObject(GeneratorBase.java:389) at com.fasterxml.jackson.core.JsonGenerator.writeObjectField(JsonGenerator.java:2385) at demo.webauthn.WebAuthnServer$AuthDataSerializer.serialize(WebAuthnServer.java:813) at demo.webauthn.WebAuthnServer$AuthDataSerializer.serialize(WebAuthnServer.java:790)

21:59:56.165-0500 [qtp852026681-38] DEBUG demo.webauthn.WebAuthnRestResource - Encoding messages as JSON: [Attestation verification failed; further error message(s) were unfortunately lost to an internal server error.]

Looks like registration is successful, but it throws error when parsing the response to JSON.

emlun commented 2 years ago

Hi! Hm, that looks like the authenticator response is corrupted somehow. Could you post the contents of the "Authenticator response" text box from when that error happens?

emlun commented 2 years ago

Closing this due to inactivity, you're welcome to re-open it if you need more help!