[
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 a "passkey"
field type (was: KSM Vault extension broken with any recording containing a
"passkey" field type)
> KSM Vault extension broken with any record containing a "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)