20.7.25. マーシャリングデータ
Hotgitops クライアントを使用すると、ユーザーオブジェクトをバイトアレイに変換するためのカスタムマーシャラーをプラグインして、別の方法でプラグインできます。この変換は、Hot pressure のバイナリー性により必要となります。オブジェクトについて把握していないため、この変換が必要です。
マーシャラーは、「marshaller」設定要素でプラグインできます(設定セクションを参照)。値は、Marshaller インターフェースを実装するクラスの完全修飾名である必要があります。これは任意のパラメーターで、デフォルトで GenericJBossMarshaller に設定されます。これは、JBoss Marshalling ライブラリーに基づく非常に最適化された実装です。
バージョン 6.0 以降、移植可能なペイロードを生成する Protostream に基づいて、新しいマーシャラーが Java Hotgitops クライアントで利用できます。詳細は、を参照して ください。
警告: 独自のカスタムマーシャラーを開発する場合は、潜在的なインジェクション攻撃に注意します。
このような攻撃を回避するには、アンシャラが、予想される/許可済みのクラス名にあわせてクラス名を読み取る前にマーシャラーが読み込まれていることを確認します。
クライアント設定は、読み取りが可能なクラスの正規表現のリストで強化できます。
警告: これらのチェックはオプトインであるため、設定されていない場合はすべてのクラスを読み取ることができます。
以下の例では、Person または Employee を含む完全修飾名を持つクラスのみが許可されます。
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
...
ConfigurationBuilder configBuilder = ...
configBuilder.addJavaSerialWhiteList(".*Person.*", ".*Employee.*");