SolarisLabel abstract クラスには、ラベルと文字列間の変換に使用するメソッドが含まれており、そのメソッドのサブクラスによって継承されます。
これらのメソッドで、ラベルの内部表現 (m_label_t) を String オブジェクトに変換します。
toInternalメソッドを使用して、格付け名を表示しない文字列にラベルを変換できます。この形式は、共通オブジェクトでのラベルの格納に適します。
Java 仮想マシンの実行は、変換されるラベルよりも優位であることが必要です。つまり、sys_trans_label 特権を持つ必要があります。label_to_str(3TSOL) のマニュアルページを参照してください。
一部のラベル値は、label_encodings ファイル内のデータに基づきます。
次のメソッドは label_to_str() ルーチンによく似ています。label_to_str(3TSOL) のマニュアルページを参照してください。
このメソッドは、公開オブジェクトへの格納に安全なラベルの内部表現を返します。内部変換は、あとでその同じ値に解析することができます。これは toString メソッドの使用方法と同じです。
これらの 2 つのメソッドでは、エラーの処理方法が異なります 。toInternalメソッドでエラーが検出された場合には、java.io.IOException が返されます。一方、toString メソッドでエラーが検出された場合は、NULL が返されます。
このメソッドは、ラベルの 内部 16 進数バージョンを文字列形式で返します。これは、toInternal メソッドの使用方法と同じです。
これらの 2 つのメソッドでは、エラーの処理方法が異なります 。toString メソッドでエラーが検出された場合は、NULL が返されます。ただし、 toInternal メソッドでエラーが検出された場合には、java.io.IOException が返されます。
次のメソッドで、マルチレベルのプリンタバナーページの作成に適したラベル変換を実行します。これらのメソッドは、label_to_str() ルーチンの一部の機能とよく似ています。label_to_str(3TSOL) および m_label(3TSOL) のマニュアルページを参照してください。
このメソッドは、バナーページの警告セクションの作成に適した、人間が読み取れるテキスト文字列を返します。
このメソッドは SensitivityLabel オブジェクトにのみ使用可能であり、ClearanceLabel オブジェクトには使用できません。
このメソッドは、バナーページの処理チャネルセクションに適した、人間が読み取れるテキスト文字列を返します。
このメソッドは SensitivityLabel オブジェクトにのみ使用可能であり、ClearanceLabel オブジェクトには使用できません。
このメソッドは、機密ラベルとしての使用に適した、人間が読み取れるテキスト文字列を返します。この機密ラベルは、末尾のページの下部に表示されます。
このメソッドは SensitivityLabel オブジェクトにのみ使用可能であり、ClearanceLabel オブジェクトには使用できません。
このメソッドは、機密ラベルとしての使用に適した、人間が読み取れるテキスト文字列を返します。この機密ラベルは、末尾のページの上部に表示されます。
このメソッドは SensitivityLabel オブジェクトにのみ使用可能であり、ClearanceLabel オブジェクトには使用できません。
このメソッドは、機密ラベルとしての使用に適した、人間が読み取れるテキスト文字列を返します。この機密ラベルは、のページの下部に表示されます。
このメソッドは SensitivityLabel オブジェクトにのみ使用可能であり、ClearanceLabel オブジェクトには使用できません。
次のサンプルコーディグは、Java バインディングを使用して「プリンタバナー情報の取得」で説明されているものと同様のバナーページを作成する方法を示します。
import solarismac.*; import java.io.*; /* * Banner page example */ public class PrintTest1 { public static void main (String args[]) { try { // Pick a valid label using the label_encodings.example SensitivityLabel sl = SolarisLabel.getSensitivityLabel("TOP SECRET A B SA"); // "Protect as classification" System.out.println(sl.toHeader()); System.out.println(); // "Protect as classification plus compartments" System.out.println("This output must be protected as:"); System.out.println(sl.toProtectAs()); System.out.println("unless manually reviewed and downgraded."); System.out.println(); // Handling instructions specified in PRINTER BANNERS System.out.println(sl.toCaveats()); System.out.println(); // Handling instructions specified in CHANNELS System.out.println(sl.toChannels()); System.out.println(); // "Protect as classification" System.out.println(sl.toFooter()); System.out.println(); } catch (Exception e) { e.printStackTrace(); } } } |
TOP SECRET A B SA のプロセスラベルの場合、テキスト出力は次のようになります。
TOP SECRET This output must be protected as: TOP SECRET A B SA unless manually reviewed and downgraded. (FULL SA NAME) HANDLE VIA (CH B)/(CH A) CHANNELS JOINTLY TOP SECRET |
toText、toInternal および toColor などのメソッドでは、文字列からラベルに変換しません。 文字列を機密ラベルまたは認可上限ラベルに変換するには、 getSensitivityLabel または getClearanceLabel static ファクトリを個別に呼び出す必要があります。 次の static ファクトリは str_to_label() ルーチンによく似ています。str_to_label(3TSOL) および m_label(3TSOL) のマニュアルページを参照してください。
この static ファクトリでは、指定された文字列から認可上限ラベルを作成します。次の例では、ラベル名およびラベルの内部 16 進数名に基づいて新しい認可上限ラベルを作成します。
ClearanceLabel cl = SolarisLabel.getClearanceLabel("PUBLIC"); ClearanceLabel cl = SolarisLabel.getClearanceLabel("0x0002-08-08"); |
この static ファクトリでは、指定した文字列から機密ラベルを作成します。次の例では、ラベル名およびラベルの内部 16 進数名に基づいて新しい機密ラベルを作成します。
SensitivityLabel sl = SolarisLabel.getSensitivityLabel("PUBLIC"); SensitivityLabel sl = SolarisLabel.getSensitivityLabel("0x0002-08-08"); |