James Muehlner created GUACAMOLE-1794:
-----------------------------------------
Summary: KSM Vault extension broken with unk
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
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)