|
![]() |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.osci.osci12.messagetypes.OSCIMessage
de.osci.osci12.messagetypes.OSCIResponseTo
de.osci.osci12.messagetypes.StoredMessage
Eine Instanz dieser Klasse wird beim Einlesen einer serialisierten OSCI-Nachricht beliebigen Typs (Nachrichten mit Inhaltsdaten) angelegt.
Die Klasse dient folgenden Zwecken:Leser können ihre Inhaltsdaten in Nachrichten beliebigen Typs ablegen, diese speichern und z.B. als Datei weiterreichen. Absender können eine solche Datei mit der Methode loadMessage(InputStream) laden, die Inhaltdatencontainer entnehmen und anderen Nachrichten hinzufügen.
Ein generelles Problem ist, dass in verschlüsselten Inhaltsdaten einer OSCI-Nachricht die Informationen über die enthaltenen Referenzen auf Zertifikate und Attachments ohne Entschlüsselung nicht verfügbar sind. Im Zweifel müssen daher alle Zertifikate (z.B. mit den Methoden OSCIMessage.getOtherAuthors(), OSCIMessage.getOtherReaders() und OSCIMessage.addRole(Role)) und Attachments (Methoden exportAttachment(OSCIMessage, Attachment) und exportAttachments(OSCIMessage)) entnommen und der neuen Nachricht hinzugefügt werden.
Anwendungen sollten dies berücksichtigen und für den Inhaltsdatenaustausch möglichst mehrere einzelne Nachrichten statt einer komplexen verwenden. Besonders problematisch ist in diesem Zusammenhang die Signatur durch Originator- bzw. Verschlüsselung für Addressee-Rollenobjekte, weil diese i.d.R. nicht in eine neue Nachricht übernommen werden können. Hier sollten grundsätzlich Author- und Reader-Objekte verwendet werden.
Weiter ist zu beachten, dass es beim Zusammensetzen einer neuen Nachricht aus Inhaltdatencontainern, die anderen Nachrichten entnommen wurden, zu Konflikten mit den Ref-Ids der Content-Einträge kommen kann. Da die Bibliothek wegen der ggf. vorhandenen Signatur diese Ids nicht selbst anpassen kann, sollten Anwendungen eindeutige Ref-Ids setzen. Diese können z.B. aus Message-Ids und laufenden Nummern oder Zertfikats-Ids (z.B. IssuerDN und SerialNumber) und Datum/Uhrzeit generiert werden.
Copyright © 2004 Freie Hansestadt Bremen
Erstellt von bremen online services Entwicklungs- und Betriebsgesellschaft GmbH & Co. KG
Diese Bibliothek kann von jedermann nach Maßgabe der Bremer Lizenz für freie Softwarebibliotheken genutzt werden.
Die Lizenzbestimmungen können unter der URL www.osci.de abgerufen oder bei der OSCI-Leitstelle, Senator für Finanzen, Freie Hansestadt Bremen, Postfach 10 15 40, 28015 Bremen schriftlich angefordert werden.
Field Summary |
Method Summary | |
void |
exportAttachment(OSCIMessage destinationMessage,
Attachment att)
Diese Methode exportiert ein Attachment der Nachricht in eine andere OSCI-Nachricht beliebigen Typs. |
void |
exportAttachments(OSCIMessage destinationMessage)
Diese Methode exportiert alle Attachments der Nachricht in eine andere OSCI-Nachricht beliebigen Typs. |
ContentContainer[] |
getContentContainer()
Liefert die in die Nachricht eingestellten (unverschlüsselten) Inhaltsdaten als ContentContainer-Objekte. |
EncryptedDataOSCI[] |
getEncryptedData()
Liefert die in die Nachricht eingestellten verschlüsselten Inhaltsdaten als EncryptedData-Objekte. |
Intermed |
getIntermediary()
Liefert das Intermediärsobjekt oder null, wenn keine Zertifikate in der Nachricht enthalten sind. |
java.lang.String |
getMessageId()
Liefert die Message-Id der Nachricht. |
ProcessCardBundle |
getProcessCardBundle()
Diese Methode liefert den Laufzettel der Nachricht zurück. |
ProcessCardBundle |
getProcessCardBundleReply()
Diese Methode liefert den Antwort-Laufzettel einer Abwicklungsantwort zurück. |
ProcessCardBundle[] |
getProcessCardBundles()
Diese Methode liefert die Laufzettel einer Laufzettelabholantwort zurück. |
boolean |
getQualityOfTimeStampCreation()
Liefert die Qualität des Zeitstempels, mit dem der Intermediär den Eingang des Auftrags im Laufzettel protokolliert. |
boolean |
getQualityOfTimeStampReception()
Liefert die geforderte Qualität des Zeitstempels, mit dem der Intermediär den Empfang der Annahmeantwort im Laufzettel protokolliert. |
long |
getQuantityLimit()
Liefert die maximale Anzahl zurückzugebender Laufzettel. |
int |
getSelectionMode()
Liefert den gesetzten Auswahlmodus für Nachrichten oder Laufzettel. |
java.lang.String |
getSelectionRule()
Liefert die gesetzte Auswahlregel für Nachrichten oder Laufzettel. |
java.lang.String |
getSubject()
Liefert den Betreff der Nachricht oder null, wenn kein Betreff in der Nachricht enthalten ist. |
java.net.URI |
getUriReceiver()
Liefert die URI des Nachrichtenempfängers oder null, wenn keine Empfänger-URI in der Nachricht enthalten ist. |
static StoredMessage |
loadMessage(java.io.InputStream input)
Liest eine (unverschlüsselte) Nachricht aus dem übergebenen Stream. |
static void |
storeMessage(OSCIMessage msg,
java.io.OutputStream output)
Serialisiert die übergebene Nachricht und schreibt die Daten in den übergebenen Stream. |
Methods inherited from class de.osci.osci12.messagetypes.OSCIResponseTo |
getFeedback, getFeedbackObjects |
Methods inherited from class de.osci.osci12.messagetypes.OSCIMessage |
addCustomHeader, addRole, formatISO8601, getAddressee, getBase64Encoding, getCustomHeaders, getDialogHandler, getMessageType, getOriginator, getOtherAuthors, getOtherReaders, getRoleForRefID, isSigned, parseISO8601, setBase64Encoding, toString |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Method Detail |
public static void storeMessage(OSCIMessage msg, java.io.OutputStream output) throws java.io.IOException, OSCIException, java.security.NoSuchAlgorithmException
msg
- zu speichernde Nachricht; z.Zt. können StoredMessage-Objekte selbst nicht
gespeichert werden. Der Stream wird von der Methode nicht geschlossen.output
- Ausgabestream
java.io.IOException
- bei Schreibfehlern
OSCIException
- bei Problemen beim Aufbau der Nachricht
java.security.NoSuchAlgorithmException
- wenn der installierte Security-Provider einen
benötigten Algorithmus nicht unterstütztloadMessage(InputStream)
public static StoredMessage loadMessage(java.io.InputStream input) throws java.io.IOException, OSCIException, java.security.NoSuchAlgorithmException
input
- zu lesender Stream
java.io.IOException
- bei Schreibfehlern
OSCIException
- bei Problemen beim Aufbau der Nachricht
java.security.NoSuchAlgorithmException
- wenn der installierte Security-Provider einen
benötigten Algorithmus nicht unterstütztstoreMessage(OSCIMessage, OutputStream)
public void exportAttachments(OSCIMessage destinationMessage)
destinationMessage
- ZielnachrichtexportAttachment(OSCIMessage, Attachment)
public void exportAttachment(OSCIMessage destinationMessage, Attachment att)
destinationMessage
- ZielnachrichtexportAttachments(OSCIMessage)
public ProcessCardBundle getProcessCardBundle()
getProcessCardBundleReply()
,
ResponseToMediateDelivery.getProcessCardBundleRequest()
public ProcessCardBundle[] getProcessCardBundles()
java.lang.UnsupportedOperationException
- wenn die Nachricht nicht vom Typ
ResponseToFetchProcessCard istgetProcessCardBundle()
,
ResponseToFetchProcessCard.getProcessCardBundles()
public ProcessCardBundle getProcessCardBundleReply()
java.lang.UnsupportedOperationException
- wenn die Nachricht nicht vom Typ
ResponseToMediateDelivery ist.getProcessCardBundle()
public java.lang.String getMessageId()
getMessageId
in interface ContentPackageI
public Intermed getIntermediary()
public ContentContainer[] getContentContainer()
getContentContainer
in interface ContentPackageI
ContentContainer
public EncryptedDataOSCI[] getEncryptedData()
getEncryptedData
in interface ContentPackageI
EncryptedDataOSCI
public java.lang.String getSubject()
getSubject
in interface ContentPackageI
public java.net.URI getUriReceiver()
public boolean getQualityOfTimeStampCreation()
java.lang.UnsupportedOperationException
- wenn der repräsentierte Nachrichtentyp
keine Zeitstempelanforderung enthältgetQualityOfTimeStampReception()
public boolean getQualityOfTimeStampReception()
java.lang.UnsupportedOperationException
- wenn der repräsentierte Nachrichtentyp
keine Zeitstempelanforderung enthältgetQualityOfTimeStampCreation()
public int getSelectionMode()
java.lang.UnsupportedOperationException
- wenn der repräsentierte Nachrichtentyp
keine Auswahlmöglichkeit enthältgetSelectionRule()
public java.lang.String getSelectionRule()
java.lang.UnsupportedOperationException
- wenn der repräsentierte Nachrichtentyp
keine Auswahlmöglichkeit enthältgetSelectionMode()
public long getQuantityLimit()
java.lang.UnsupportedOperationException
- wenn die repräsentierte Nachricht
kein Laufzettelabholauftrag oder -antwort ist.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |