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