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 Intermediaer. Für die Kommunikation mit dem Intermediaer 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
 Role client
          Client
 de.osci.osci12.soapheader.ControlBlockH controlblock
          Der Controlblock.
static Role defaultSupplier
           
static de.osci.osci12.extinterfaces.intermed.IDModule idModule
           
 java.lang.String prevChallenge
           
 Role supplier
          Supplier
 
Constructor Summary
DialogHandler(Intermed client, Addressee supplier, TransportI transportModule)
          DialogHandler für Annahmeauftrag/-antwort und Bearbeitungsauftrag/-antwort.
DialogHandler(Originator client, Intermed supplier, TransportI transportModule)
          DialogHandler 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.
 Role getDefaultSupplier()
          Liefert das als Default-Supplier gesetzte Addressee-Objekt.
static DialogFinder getDialogFinder()
           
 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.
 java.lang.String getSecureRandomAlgorithm()
          Liefert den eingestellten Algorithmus für den verwendeten Zufallszahlengenerator.
 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.
 TransportI getTransportModule()
          Liefert die installierte Implementierung des Transportinterfaces.
 boolean isCheckSignatures()
          Liefert true, wenn die Nachrichtensignaturen (Client- bzw.
 boolean isCreateSignature()
          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 zurueck.
 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 Backends ein Addresse-Objekt als Default-Supplier setzen, das für den Empfang einer Nachricht das richtige Decrypter- und ggf.
static void setDialogFinder(DialogFinder newDialogFinder)
          Registriert eine Instanz (einer Implementierung) der abstrakten Klasse DialogFinder zur Verwendung in diesem Dialog.
 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.
 void setSecureRandomAlgorithm(java.lang.String secureRandomAlgorithm)
          Mit Hilfe dieser Methode kann ein Algorithmus für den verwendeten Zufallszahlengenerator gesetzt.
 void setSignatureAlgorithm(java.lang.String signatureAlgorithm)
          Hiermit kann ein Signaturalgorithmus eingestellt werden, der für die Verschlüsselung der Nachrichten (verschlüsselte Auftragsdaten) verwendet wird.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

controlblock

public de.osci.osci12.soapheader.ControlBlockH controlblock
Der Controlblock.


client

public Role client
Client


supplier

public Role supplier
Supplier


idModule

public static de.osci.osci12.extinterfaces.intermed.IDModule idModule

defaultSupplier

public static Role defaultSupplier

prevChallenge

public java.lang.String prevChallenge
Constructor Detail

DialogHandler

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

Parameters:
client - Originator als Client. Bei Dialogen mit verschlüsselten bzw. signierten Nachrichten muß für dieses Objekt ein Decrypter- bzw. Signer-Objekt gesetzt sein.
transportModule - Implementierung des TransportInterfaces.
See Also:
Originator

DialogHandler

public DialogHandler(Intermed client,
                     Addressee supplier,
                     TransportI transportModule)
DialogHandler für Annahmeauftrag/-antwort und Bearbeitungsauftrag/-antwort.

Parameters:
client - Addressee als Supplier. Bei Dialogen mit verschlüsselten bzw. signierten Nachrichten muß für dieses Objekt ein Decrypter- bzw. Signer-Objekt gesetzt sein.
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()

isCreateSignature

public boolean isCreateSignature()
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:
isCreateSignature()

checkControlBlock

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

OSCIErrorException

getDialogFinder

public static DialogFinder getDialogFinder()

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 besteht aus 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

setDialogFinder

public static void setDialogFinder(DialogFinder newDialogFinder)
Registriert eine Instanz (einer Implementierung) der abstrakten Klasse DialogFinder zur Verwendung in diesem Dialog. Voreingestellt ist eine Instanz der Default-Implementierung de.osci.osci12.common.DefaultDialogFinder.

Parameters:
newDialogFinder -
See Also:
DialogFinder

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 zurueck. 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 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 void setSecureRandomAlgorithm(java.lang.String secureRandomAlgorithm)
Mit Hilfe dieser Methode kann ein Algorithmus für den verwendeten Zufallszahlengenerator gesetzt. 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 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
See Also:
setSignatureAlgorithm(String)

setSignatureAlgorithm

public void setSignatureAlgorithm(java.lang.String signatureAlgorithm)
Hiermit kann ein Signaturalgorithmus eingestellt werden, der für die Verschlüsselung der Nachrichten (verschlüsselte Auftragsdaten) verwendet wird. Voreingestellt ist "http://www.w3.org/2000/09/xmldsig#rsa-sha1".

See Also:
Signer, getSignatureAlgorithm()

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 Backends 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 Role getDefaultSupplier()
Liefert das als Default-Supplier gesetzte Addressee-Objekt.

See Also:
setDefaultSupplier(Addressee)