You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@guacamole.apache.org by "James Muehlner (Jira)" <ji...@apache.org> on 2023/05/23 22:38:00 UTC

[jira] [Updated] (GUACAMOLE-1794) KSM Vault extension broken with any record containing new "passkey" field type

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

James Muehlner updated GUACAMOLE-1794:
--------------------------------------
    Summary: KSM Vault extension broken with any record containing new "passkey" field type  (was: KSM Vault extension broken with any record containing a "passkey" field type)

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