[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Jumper closed GUACAMOLE-1794.
----------------------------------
    Resolution: Fixed

> KSM Vault extension broken with any record containing new "passkey" field type
> ------------------------------------------------------------------------------
>
>                 Key: GUACAMOLE-1794
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1794
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole-vault-ksm
>    Affects Versions: 1.5.2
>            Reporter: James Muehlner
>            Priority: Major
>             Fix For: 1.5.3
>
>
> It looks like a new field type "passkey" was added in the KSM vault, and 
> whenever a record is edited in the vault, it may add this new field, which 
> blows up the attempt to fetch records using the KSM SDK with the following 
> error:
> {code:java}
> kotlinx.serialization.json.internal.JsonDecodingException: Polymorphic 
> serializer was not found for class discriminator 'passkey'
> JSON input: {"type":"passkey","value":[]}
>               at 
> kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24)
>               at 
> kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32)
>               at 
> kotlinx.serialization.json.internal.PolymorphicKt.throwSerializerNotFound(Polymorphic.kt:76)
>               at 
> kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:66)
>               at 
> kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38)
>               at 
> kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
>               at 
> kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
>               at 
> kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:111)
>               at 
> kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:537)
>               at 
> kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
>               at 
> kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
>               at 
> kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
>               at 
> kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
>               at 
> kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
>               at 
> kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38)
>               at 
> kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
>               at 
> kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
>               at 
> kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:111)
>               at 
> com.keepersecurity.secretsManager.core.KeeperRecordData$$serializer.deserialize(RecordData.kt:9)
>               at 
> com.keepersecurity.secretsManager.core.KeeperRecordData$$serializer.deserialize(RecordData.kt:9)
>               at 
> kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
>               at 
> kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38)
>               at kotlinx.serialization.json.Json.decodeFromString(Json.kt:100)
>               at 
> com.keepersecurity.secretsManager.core.SecretsManager.decryptRecord(SecretsManager.kt:1151)
>               at 
> com.keepersecurity.secretsManager.core.SecretsManager.fetchAndDecryptSecrets(SecretsManager.kt:618)
>               at 
> com.keepersecurity.secretsManager.core.SecretsManager.getSecrets(SecretsManager.kt:323)
>               at 
> com.keepersecurity.secretsManager.core.SecretsManager.getSecrets$default(SecretsManager.kt:322)
>               at 
> com.keepersecurity.secretsManager.core.SecretsManager.getSecrets(SecretsManager.kt)
>               at 
> org.apache.guacamole.vault.ksm.secret.KsmClient.validateCache(KsmClient.java:269){code}
> Thankfully, it looks like support for the new "passkey" field type was added 
> in the 16.5.3 version of the SDK, so fixing this should hopefully be as easy 
> as updating the KSM SDK version:
> https://github.com/Keeper-Security/secrets-manager/tree/master/sdk/java/core#readme



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to