デフォルトでは、セキュリティの目的で、フロー内でdefault serialization whitelistに存在するクラスのみを送信できます。
シリアライズのホワイトリストに特定のクラスを追加するには、2つの方法があります。
@CordaSerializableとしてクラスを注釈:
class TemplateSerializationWhitelist : SerializationWhitelist {
override val whitelist: List<Class<*>> = listOf(MyClass::class.java)
}
あなたは、その後にシリアライズホワイトリストプラグインの完全修飾クラス名をリストする必要があります。
@CordaSerializable
class MyClass
がシリアライズホワイトリストプラグインを作成しますsrc/META-INF/services
フォルダにnet.corda.core.serialization.SerializationWhitelist
というファイルがあります。
なぜシリアル化ホワイトリストにクラスを追加するには2つの方法がありますか?
最初のアプローチは簡単ですが、送信するクラスにアノテーションを追加できない場合は不可能です。