de.osci.osci12.common
Class DialogHandler

java.lang.Object
  |
  +--de.osci.osci12.common.DialogHandler

public class DialogHandler
extends java.lang.Object

Der DialogHandler steuert die Kommunikation mit dem Intermediär. Für die Kommunikation mit dem Intermediär müssen eine Reihe von Rahmenparametern gesetzt werden. Daher ist diese Klasse zentral fuer jede Kommunikation. Ein DialogHandler-Objekt ist für jede Nachricht erforderlich, unabhängig davon, ob diese innerhalb eines impliziten oder expliziten Dialogs verarbeitet wird.

Copyright: Copyright (c) 2003

Organisation: bremen online services GmbH & Co. KG


Field Summary
static java.lang.String boundary
          Der Trenner für die einzelnen MIME boundaries
 Role client
          Client
static Role defaultSupplier
           
static DialogFinder dialogFinder
           
 boolean explicitDialog
          Ciphercert immer mitschicken.
 java.lang.String prevChallenge
           
 ProcessCardBundle processCardForTimestampReception
           
 Role supplier
          Supplier
static java.util.ResourceBundle text
           
 
Constructor Summary
DialogHandler(Intermed client, Addressee supplier, TransportI transportModule)
          DialogHandler für Annahmeauftrag/-antwort und Bearbeitungsauftrag/-antwort.
DialogHandler(Originator client, Intermed supplier, TransportI transportModule)
          Konstruktor für alle Aufträge/Auftragsantworten, ausgenommen Annahmeauftrag/-antwort und Bearbeitungsauftrag/-antwort.
 
Method Summary
 void checkControlBlock(de.osci.osci12.soapheader.ControlBlockH cb)
          Interne Methode, sollte von Anwendungen nicht aufgerufen werden.
static DialogHandler findDialog(de.osci.osci12.soapheader.ControlBlockH controlBlock)
          Interne Methode, sollte von Anwendungen nicht aufgerufen werden.
 Role getClient()
          Liefert den mit diesem DialogHandler verbundenen Client.
 de.osci.osci12.soapheader.ControlBlockH getControlblock()
          Liefert den aktuellen Controlblock.
 Addressee getDefaultSupplier()
          Liefert das als Default-Supplier gesetzte Addressee-Objekt.
static java.lang.String getDigestAlgorithm()
          Liefert den gesetzten Hash-Algorithmus.
 java.lang.String getLanguageList()
          Liefert die Liste der Sprachkürzel, die in den DesiredLanguages-Elementen eingetragen wird.
static OSCIDataSource getNewDataBuffer()
          Interne Methode, sollte von Anwendungen nicht aufgerufen werden.
 ProgressEventHandlerI getProgressEventHandler()
          Liefert die aktuell registrierte Implementierung des ProgressI-Interfaces.
static java.lang.String getSecureRandomAlgorithm()
          Liefert den eingestellten Algorithmus für den verwendeten Zufallszahlengenerator.
static java.lang.String getSignatureAlgorithm()
          Liefert den Identifier des Signaturalgorithmus, der für die Verschlüsselung der Nachrichten (verschlüsselte Auftragsdaten) verwendet wird.
 Role getSupplier()
          Liefert den mit diesem DialogHandler verbundenen Supplier.
static java.lang.String getSymmetricCipherAlgorithm()
          Liefert den symmetrischen Verschlüsselungs-Algorithmus
 TransportI getTransportModule()
          Liefert die installierte Implementierung des Transportinterfaces.
 boolean isCheckSignatures()
          Liefert true, wenn die Nachrichtensignaturen (Client- bzw.
 boolean isCreateSignatures()
          Liefert true, wenn an den Nachrichten eine Signatur (Client- bzw.
 boolean isEncryption()
          Liefert true, wenn die Nachrichten als verschlüsselte Auftragsdaten versendet werden.
 void resetControlBlock()
          Setzt den ControlBlock zurück.
 void setCheckSignatures(boolean check)
          Legt fest, ob Nachrichtensignaturen (Client- bzw.
 void setCreateSignatures(boolean sign)
          Legt fest, ob Nachrichtensignaturen (Client- bzw.
static void setDataBuffer(OSCIDataSource buffer)
          Hiermit kann eine Implementierung der abstrakten Klasse OSCIDataSource installiert werden, falls Inhaltsdaten nicht durch die default-Implementierung SwapBuffer im Arbeitsspeicher bzw. in temporären Dateien gepuffert werden sollen, sondern beispielsweise in einer Datenbank.
static void setDefaultSupplier(Addressee supplier)
          Mit dieser Methode müssen passive Empfänger ein Addresse-Objekt als Default-Supplier setzen, das für den Empfang einer Nachricht das richtige Decrypter- und ggf.
 void setDigestAlgorithm(java.lang.String newDigestAlgorithm)
          Setzt den Hash-Algorithmus für die Signatur der Nachrichten (Voreinstellung SHA1).
 void setEncryption(boolean doEncryption)
          Legt fest, ob die Nachrichten als verschlüsselte Auftragsdaten versendet werden.
 void setLanguageList(java.lang.String languageList)
          Setzt die Liste der Sprachkürzel, die in den DesiredLanguages-Elementen eingetragen wird.
 void setProgressEventHandler(ProgressEventHandlerI progressEventHandler)
          Registriert eine Instanz (einer Implementierung) des ProgressEventHandlerI- Interfaces.
static void setSecureRandomAlgorithm(java.lang.String algorithm)
          Mit Hilfe dieser Methode kann ein Algorithmus für den verwendeten Zufallszahlengenerator gesetzt werden.
 void setSymmetricCipherAlgorithm(java.lang.String symmetricCipherAlgorithm)
          Setzen des symmetrischen Verschlüsselungs-Algorithmus
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

text

public static java.util.ResourceBundle text

client

public Role client
Client


supplier

public Role supplier
Supplier


dialogFinder

public static DialogFinder dialogFinder

boundary

public static java.lang.String boundary
Der Trenner für die einzelnen MIME boundaries


explicitDialog

public boolean explicitDialog
Ciphercert immer mitschicken. Auch wenn nicht verschluesselt wird.


defaultSupplier

public static Role defaultSupplier

processCardForTimestampReception

public ProcessCardBundle processCardForTimestampReception

prevChallenge

public java.lang.String prevChallenge
Constructor Detail

DialogHandler

public DialogHandler(Originator client,
                     Intermed supplier,
                     TransportI transportModule)
Konstruktor für alle Aufträge/Auftragsantworten, ausgenommen Annahmeauftrag/-antwort und Bearbeitungsauftrag/-antwort.

Parameters:
client - Originator als Client. Sollen Aufträge signiert versendet werden oder werden verschlüsselte Rückantworten erwartet, so muß für dieses Objekt ein Decrypter- bzw. Signer-Objekt gesetzt sein. Die gilt für die Verschlüsselung bzw. Signatur der Nachricht wie für die der Inhaltsdaten.
transportModule - zu verwendende Implementierung des TransportInterfaces.
See Also:
Originator

DialogHandler

public DialogHandler(Intermed client,
                     Addressee supplier,
                     TransportI transportModule)
DialogHandler für Annahmeauftrag/-antwort und Bearbeitungsauftrag/-antwort. Dieser Konstruktor wird vom Anwender nicht benötigt.

Parameters:
client - Intermediär als Client.
supplier - Addressee als Supplier.
transportModule - Implementierung des TransportInterfaces.
See Also:
Addressee
Method Detail

isCheckSignatures

public boolean isCheckSignatures()
Liefert true, wenn die Nachrichtensignaturen (Client- bzw. Suppliersignatur) beim Empfang überprüft werden, sonst false.

Returns:
den Wert des Attributs.
See Also:
setCheckSignatures(boolean)

setCheckSignatures

public void setCheckSignatures(boolean check)
Legt fest, ob Nachrichtensignaturen (Client- bzw. Suppliersignaturen) beim Empfang geprüft werden sollen. Voreinstellung ist false.

Parameters:
check - true - Signaturprüfung wird durchgeführt.
See Also:
isCheckSignatures()

isCreateSignatures

public boolean isCreateSignatures()
Liefert true, wenn an den Nachrichten eine Signatur (Client- bzw. Suppliersignatur) angebracht wird, sonst false.

Returns:
den Wert des Attributs.
See Also:
setCreateSignatures(boolean)

setCreateSignatures

public void setCreateSignatures(boolean sign)
Legt fest, ob Nachrichtensignaturen (Client- bzw. Suppliersignaturen) beim Versand angebracht werden sollen. Voreinstellung ist false.

Parameters:
sign -
See Also:
isCreateSignatures()

checkControlBlock

public void checkControlBlock(de.osci.osci12.soapheader.ControlBlockH cb)
                       throws OSCIErrorException
Interne Methode, sollte von Anwendungen nicht aufgerufen werden.

OSCIErrorException

findDialog

public static DialogHandler findDialog(de.osci.osci12.soapheader.ControlBlockH controlBlock)
                                throws OSCIErrorException
Interne Methode, sollte von Anwendungen nicht aufgerufen werden.

OSCIErrorException

getTransportModule

public TransportI getTransportModule()
Liefert die installierte Implementierung des Transportinterfaces.

Returns:
Transportinterface.
See Also:
TransportI

isEncryption

public boolean isEncryption()
Liefert true, wenn die Nachrichten als verschlüsselte Auftragsdaten versendet werden.

Returns:
den Wert des Attributs.
See Also:
setEncryption(boolean)

setEncryption

public void setEncryption(boolean doEncryption)
Legt fest, ob die Nachrichten als verschlüsselte Auftragsdaten versendet werden. Voreinstellung ist true.

Parameters:
doEncryption -
See Also:
isEncryption()

getControlblock

public de.osci.osci12.soapheader.ControlBlockH getControlblock()
Liefert den aktuellen Controlblock. Ein Controlblock beinhaltet Challenge, Response, ConversationID und SequenzeNumber.

Returns:
ControlBlock dieses Dialogs.

getProgressEventHandler

public ProgressEventHandlerI getProgressEventHandler()
Liefert die aktuell registrierte Implementierung des ProgressI-Interfaces.

Returns:
ProgressEventHandlerI-Implementierung
See Also:
ProgressEventHandlerI

setProgressEventHandler

public void setProgressEventHandler(ProgressEventHandlerI progressEventHandler)
Registriert eine Instanz (einer Implementierung) des ProgressEventHandlerI- Interfaces. Das registrierte Objekt wird im Verlauf der Verarbeitung der Nachricht durch Aufruf seiner Methode event(int,String,int) über Fortschrittsereignisse informiert.

Parameters:
progressEventHandler -
See Also:
ProgressEventHandlerI

resetControlBlock

public void resetControlBlock()
Setzt den ControlBlock zurück. Erlaubt die Wiederverwendung dieses Objekts in einem neuen Dialog.


getClient

public Role getClient()
Liefert den mit diesem DialogHandler verbundenen Client.

Returns:
das Rollenobjekt, welches als Client fungiert

getSupplier

public Role getSupplier()
Liefert den mit diesem DialogHandler verbundenen Supplier.

Returns:
das Rollenobjekt, welches als Supplier fungiert

getLanguageList

public java.lang.String getLanguageList()
Liefert die Liste der Sprachkürzel, die in den DesiredLanguages-Elementen eingetragen wird.

Returns:
die Liste der Sprachkürzel, getrennt durch Leerzeichen, z.B. "de en-US fr"
See Also:
setLanguageList(String)

setLanguageList

public void setLanguageList(java.lang.String languageList)
Setzt die Liste der Sprachkürzel, die in den DesiredLanguages-Elementen eingetragen wird. Voreingestellt ist das Kürzel der im default-Locale eingetragenen Sprache.

Parameters:
languageList - die Liste der Sprachkürzel, getrennt durch Leerzeichen, z.B. "de en-US fr"
See Also:
getLanguageList()

getSecureRandomAlgorithm

public static java.lang.String getSecureRandomAlgorithm()
Liefert den eingestellten Algorithmus für den verwendeten Zufallszahlengenerator.

Returns:
den String-Identifier des Algorithmus.
See Also:
setSecureRandomAlgorithm(String)

setSecureRandomAlgorithm

public static void setSecureRandomAlgorithm(java.lang.String algorithm)
Mit Hilfe dieser Methode kann ein Algorithmus für den verwendeten Zufallszahlengenerator gesetzt werden. Dieser String wird von der Bibliothek bei der Initialisierung an die Methode java.security.SecureRandom#getInstance(String) übergeben. Voreingestellt ist "SHA1PRNG".

See Also:
SecureRandom

getSignatureAlgorithm

public static java.lang.String getSignatureAlgorithm()
Liefert den Identifier des Signaturalgorithmus, der für die Verschlüsselung der Nachrichten (verschlüsselte Auftragsdaten) verwendet wird.

Returns:
den Identifier

setDataBuffer

public static void setDataBuffer(OSCIDataSource buffer)
Hiermit kann eine Implementierung der abstrakten Klasse OSCIDataSource installiert werden, falls Inhaltsdaten nicht durch die default-Implementierung SwapBuffer im Arbeitsspeicher bzw. in temporären Dateien gepuffert werden sollen, sondern beispielsweise in einer Datenbank.
Dieser Puffer-Mechanismus wird von den Klassen EncryptedData, Content und Attachment genutzt. Zur Implementierung eigener Klassen sind die Hinweise in der Dokumentation von OSCIDataSource zu beachten.

Parameters:
buffer - die OSCIDataSource-Implementierung
See Also:
OSCIDataSource, SwapBuffer

getNewDataBuffer

public static OSCIDataSource getNewDataBuffer()
                                       throws java.io.IOException
Interne Methode, sollte von Anwendungen nicht aufgerufen werden.

java.io.IOException

setDefaultSupplier

public static void setDefaultSupplier(Addressee supplier)
Mit dieser Methode müssen passive Empfänger ein Addresse-Objekt als Default-Supplier setzen, das für den Empfang einer Nachricht das richtige Decrypter- und ggf. Signer-Objekt zur Verfügung stellt.

See Also:
getDefaultSupplier()

getDefaultSupplier

public Addressee getDefaultSupplier()
Liefert das als Default-Supplier gesetzte Addressee-Objekt.

See Also:
setDefaultSupplier(Addressee)

getSymmetricCipherAlgorithm

public static java.lang.String getSymmetricCipherAlgorithm()
Liefert den symmetrischen Verschlüsselungs-Algorithmus

Returns:
Identifier des Algorithmus

setSymmetricCipherAlgorithm

public void setSymmetricCipherAlgorithm(java.lang.String symmetricCipherAlgorithm)
Setzen des symmetrischen Verschlüsselungs-Algorithmus

Parameters:
symmetricCipherAlgorithm -

getDigestAlgorithm

public static java.lang.String getDigestAlgorithm()
Liefert den gesetzten Hash-Algorithmus.

Returns:
Identifier des Hash-Algorithmus
See Also:
setDigestAlgorithm(String)

setDigestAlgorithm

public void setDigestAlgorithm(java.lang.String newDigestAlgorithm)
                        throws java.security.NoSuchAlgorithmException
Setzt den Hash-Algorithmus für die Signatur der Nachrichten (Voreinstellung SHA1). Z.Zt. keine Unterstützung von RIPE-MD.

java.security.NoSuchAlgorithmException
See Also:
getDigestAlgorithm()