Solaris Trusted Extensions 開発ガイド

実験的 Java ラベルインタフェースの構造

Trusted Extensions ラベル API の JNI 実装により、次のように相互に関連するいくつかのラベル関連クラスが導入されます。

SolarisLabel abstract クラス

SolarisLabel abstract クラスは、Solaris Trusted Extensions ラベルに関連付けられた共通のネイティブメソッドの基盤を提供します。SensitivityLabel および ClearanceLabel サブクラスは、この abstract クラスからメンバーを継承します。機密ラベルおよび認可上限ラベルを作成するための static ファクトリも、この abstract クラスにより提供されます。

static ファクトリおよびメソッドは、エラーが検出されると例外をスローして、メッセージを表示せずに必須アクセス制御に関するエラーが発生していないことを確認します。

この abstract クラスで次の汎用メソッドを定義し、これを使用してラベルを比較したりラベルを文字列に変換したりします。

equalsdominates および strictlyDominates メソッドは、Solaris Trusted Extensions で現在使用可能な blequal()bldominates()、および blstrictdom() ラベル API とよく似ています。setFileLabelメソッドは、Solaris Trusted Extensions で現在使用可能な setflabel() ルーチンとよく似ています。

toTexttoInternaltoColorなどのその他のメソッド は、現在 Solaris Trusted Extensions で使用可能な label_to_str() ルーチンと機能が関連しています。これらのメソッドで、ラベルを特定の型の文字列に変換することができます。プロセスおよびオブジェクトのラベル関係によっては、ラベルを人間が読み取れる形式に変換するための実効セットで特権が必要となる場合があります。たとえば、Java 仮想マシン (JVMTM) が優位でないラベルを変換するには、そのプロセスを sys_trans_label 特権を使って実行している必要があります。

SolarisLabel abstract クラスには次の static ファクトリも含まれます。

ラベルとして getSensitivityLabel または getClearanceLabelに渡す文字列は、次の形式のいずれかにすることができます。

保存やネットワーク接続上での伝送に適しているのは内部形式のラベルだけですが、これは、内部形式は実際のラベルを明らかにしないためです。詳細は、「ラベルの読み取り可能バージョン」を参照してください。

ClearanceLabel および SensitivityLabel サブクラスは、SolarisLabel abstract クラスを拡張します。これらのサブクラスはそれぞれ、SolarisLabel abstract クラスで提供される共通メソッドを継承します。

ClearanceLabel サブクラス

ClearanceLabel サブクラスは SolarisLabel abstract クラスを拡張し、getMaximumおよび getMinimum メソッドを定義して、最小上限と最大下限をそれぞれに表す ClearanceLabel オブジェクトを返します。

SensitivityLabel サブクラス

SensitivityLabel サブクラスは SolarisLabel abstract クラスを拡張し、getMaximumおよび getMinimumメソッドを定義して、最小上限と最大下限をそれぞれに表す SensitivityLabel オブジェクトを返します。

SensitivityLabel サブクラスにより導入される次のメソッドにより、ラベル付けされたプリンタバナーページに適した情報が提供されます。

Range クラス

Range クラスは、Java バージョンの Solaris Trusted Extensions ラベル範囲を表します。

このクラスで次の汎用メソッドを定義し、これを使用してラベル範囲内の上限および下限のラベルを取得して、ラベルが指定したラベル範囲内にあるかどうかを判別します。

Range クラスには次の static ファクトリも含まれており、範囲オブジェクトを作成します。

getDeviceRangeStaticファクトリと getUserRange static ファクトリは、それぞれ指定されたデバイスと指定されたユーザーの範囲に基づいて、範囲オブジェクトを作成します。getLabelRange static ファクトリは、範囲の上限と下限を指定したラベル範囲を作成することができます。