Fix Desensitizer for NestedStructure

This commit is contained in:
Him188 2021-12-21 22:22:15 +00:00
parent 83d7c0d3d1
commit aa53d92fbe

View File

@ -216,17 +216,22 @@ private class DesensitizationVisitor(
val result = instance.cast<NestedStructureDesensitizer<ProtocolStruct, ProtocolStruct>>()
.deserialize(desc.origin as ProtocolStruct, value.origin as ByteArray)
?: desc.origin
?.let { ValueDescAnalyzer.analyze(it) }
val generate = ValueDescAnalyzer.analyze(result)
.transform(OptimizeByteArrayAsHexStringTransformer())
.transform(DesensitizationVisitor(desensitizer))
.renderToString()
PlainValueDesc(
desc,
"$generate.toByteArray(${result::class.qualifiedName}.serializer())",
value.origin
)
if (result == null) {
value
} else {
val generate = ValueDescAnalyzer.analyze(result)
.transform(OptimizeByteArrayAsHexStringTransformer())
.transform(DesensitizationVisitor(desensitizer))
.renderToString()
PlainValueDesc(
desc,
"$generate.toByteArray(${result::class.qualifiedName}.serializer())",
value.origin
)
}
} else value
}
}).let {