2017-11-24 2 views
0

で使用することはできませんされていない、私は次のフローが定義されています:クラスは、注釈付きまたはホワイトリストに、そのコルダでシリアライズ

Class com.example.flow.MyClass is not annotated or on the whitelist, so cannot be used in serialization

クラスにアノテーションまたはホワイトリストを作成して、フロー内で送信できるようにするにはどうすればよいですか?なぜ私はこれを行う必要がありますか?

答えて

0

デフォルトでは、セキュリティの目的で、フロー内で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つの方法がありますか?

最初のアプローチは簡単ですが、送信するクラスにアノテーションを追加できない場合は不可能です。

関連する問題