idman.mngt.impl
Class P3PFilterStream

java.lang.Object
  |
  +--org.ssonet.io.IOFilterStream
        |
        +--idman.mngt.impl.P3PFilterStream
All Implemented Interfaces:
org.ssonet.io.IOStream, NegotiationListener, java.lang.Runnable, org.ssonet.net.SSONETContextListener

public class P3PFilterStream
extends org.ssonet.io.IOFilterStream
implements org.ssonet.net.SSONETContextListener, NegotiationListener

Realisiert als IOFilterStream den Datenaustausch gemaess P3P und APPEL innerhalb einer bestehenden Verbindung.  @version $Id: P3PFilterStream.java,v 1.30 2004/02/18 10:36:32 tk4 Exp $

Author:
Thomas Kriegelstein

Field Summary
(package private)  byte BLOCK_CERT
          Nachrichtencode, Verweigern des Zertifikats.
(package private)  java.lang.String[] codes
          Kennzeichner zu Nachrichtencodes.
protected  idman.mngt.Context context
          Verbindungskontext.
protected  javax.xml.parsers.DocumentBuilder db
          XML Verarbeitung.
protected static javax.xml.parsers.DocumentBuilderFactory dbf
          XML Verarbeitung.
static boolean debug
          Debugflag.
protected  java.util.List listeners
          Listener
protected  idman.mngt.Management manager
          Manager zur Datenprotokollierung.
protected  idman.neg.NegotiationManager negotiation
          Verhandlungskomponente.
(package private)  byte OK
          Nachrichtencode, Fortsetzung der Aushandlung.
(package private)  byte READY
          Nachrichtencode, Ende der Aushandlung, Daten übertragen.
(package private)  byte REQUEST_CERT
          Nachrichtencode, Anforderung des Zertifikats.
protected  org.w3c.dom.Document ruleset
          APPEL Regelsatz.
(package private)  byte SEND_CERT
          Nachrichtencode, Senden des Zertifikats.
(package private)  byte SRY
          Nachrichtencode, Ende der Aushandlung, Grund unbekannt.
(package private)  byte SRY_DU
          Nachrichtencode, Ende der Aushandlung, Daten nicht verfügbar.
(package private)  byte SRY_PR
          Nachrichtencode, Ende der Aushandlung, Verarbeitung inakzeptabel.
(package private)  java.lang.String START
          Kennzeichner, Beginn der Aushandlung.
(package private)  byte START_SESSION
          Nachrichtencode, Beginn der Aushandlung.
protected  java.lang.Object synchronizer
          Monitor.
protected static javax.xml.transform.TransformerFactory tf
          XML Verarbeitung.
 
Fields inherited from class org.ssonet.io.IOFilterStream
ios, list, protocolMode, readException, runner, writeException
 
Constructor Summary
P3PFilterStream(idman.mngt.Management mngt, idman.neg.NegotiationManager neg, org.w3c.dom.Document ruleset, idman.mngt.Context ctx)
          Konstruktor.
 
Method Summary
 void addListener(idman.mngt.impl.P3PListener listener)
           
(package private)  boolean allowDetect()
           
 boolean allowSend(java.lang.String[] ids, java.lang.String[] recipient, java.lang.String[] purpose, java.lang.String retention)
          Frage: Dürfen folgende Daten übermittelt werden?
protected  void blockCertificate(org.ssonet.io.IOStream ios)
          Rückweisung der Zertifikatanforderung übermitteln.
 void contextChanged(org.ssonet.net.SSONETContext c)
           
protected  org.w3c.dom.Document generateDocument(java.lang.String[] ids, java.lang.String[] recipient, java.lang.String[] purpose, java.lang.String retention)
          Erzeugt ein Anforderungsdokument.
protected  void handleMessage(byte b, org.ssonet.io.IOStream ios)
          Wertet eingehende Nachrichten aus.
(package private)  void notifyDetect()
           
 void notifyReceived(java.lang.String[] ids, java.lang.String[] recipient, java.lang.String[] purpose, java.lang.String retention)
          Nachricht: Folgende Daten wurden empfangen.
 void notifySent(java.lang.String[] ids, java.lang.String[] recipient, java.lang.String[] purpose, java.lang.String retention)
          Nachricht: Folgende Daten wurden übermittelt.
 void removeListener(idman.mngt.impl.P3PListener listener)
           
 void replaceContext(org.ssonet.net.SSONETContext o, org.ssonet.net.SSONETContext n)
           
 byte[] requestAuthorizedCertificate()
          Zusicherung der Deanonymisierbarkeit anfordern.
protected  void requestCertificate(org.ssonet.io.IOStream ios)
          Eigentliches Zertifikatanfordern.
 java.util.Map requestData(java.lang.String[] ids, java.lang.String[] recipient, java.lang.String[] purpose, java.lang.String retention)
          Fordert die angegebenen Daten an.
protected  void sendCertificate(byte[] cert, org.ssonet.io.IOStream ios)
          Angefordertes Zertifikat übermitteln.
 
Methods inherited from class org.ssonet.io.IOFilterStream
available, closeIn, closeOut, read, run, setIOStream, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

public static boolean debug
Debugflag.


listeners

protected final java.util.List listeners
Listener


manager

protected idman.mngt.Management manager
Manager zur Datenprotokollierung.


context

protected idman.mngt.Context context
Verbindungskontext. -> sollte daher ContextListener sein!


negotiation

protected idman.neg.NegotiationManager negotiation
Verhandlungskomponente.


synchronizer

protected java.lang.Object synchronizer
Monitor.


db

protected javax.xml.parsers.DocumentBuilder db
XML Verarbeitung.


ruleset

protected org.w3c.dom.Document ruleset
APPEL Regelsatz.


dbf

protected static javax.xml.parsers.DocumentBuilderFactory dbf
XML Verarbeitung.


tf

protected static javax.xml.transform.TransformerFactory tf
XML Verarbeitung.


START_SESSION

final byte START_SESSION
Nachrichtencode, Beginn der Aushandlung.

See Also:
Constant Field Values

SRY_DU

final byte SRY_DU
Nachrichtencode, Ende der Aushandlung, Daten nicht verfügbar.

See Also:
Constant Field Values

SRY_PR

final byte SRY_PR
Nachrichtencode, Ende der Aushandlung, Verarbeitung inakzeptabel.

See Also:
Constant Field Values

SRY

final byte SRY
Nachrichtencode, Ende der Aushandlung, Grund unbekannt.

See Also:
Constant Field Values

OK

final byte OK
Nachrichtencode, Fortsetzung der Aushandlung.

See Also:
Constant Field Values

READY

final byte READY
Nachrichtencode, Ende der Aushandlung, Daten übertragen.

See Also:
Constant Field Values

REQUEST_CERT

final byte REQUEST_CERT
Nachrichtencode, Anforderung des Zertifikats.

See Also:
Constant Field Values

SEND_CERT

final byte SEND_CERT
Nachrichtencode, Senden des Zertifikats.

See Also:
Constant Field Values

BLOCK_CERT

final byte BLOCK_CERT
Nachrichtencode, Verweigern des Zertifikats.

See Also:
Constant Field Values

START

final java.lang.String START
Kennzeichner, Beginn der Aushandlung.

See Also:
Constant Field Values

codes

final java.lang.String[] codes
Kennzeichner zu Nachrichtencodes.

Constructor Detail

P3PFilterStream

public P3PFilterStream(idman.mngt.Management mngt,
                       idman.neg.NegotiationManager neg,
                       org.w3c.dom.Document ruleset,
                       idman.mngt.Context ctx)
Konstruktor.

Parameters:
mngt - Manager zur Protokollierung.
neg - Aushandlungskomponente.
ruleset - APPEL-Regelsatz.
ctx - Verbindungsdaten.
Method Detail

generateDocument

protected org.w3c.dom.Document generateDocument(java.lang.String[] ids,
                                                java.lang.String[] recipient,
                                                java.lang.String[] purpose,
                                                java.lang.String retention)
                                         throws java.lang.Exception
Erzeugt ein Anforderungsdokument.

Parameters:
ids - Namen der anzufordernden Daten.
recipient - Empfänger der Daten
purpose - Zweck der Datenerhebung
retention - Speicherdauer der Daten
Returns:
Die Anforderung als XML Dokument.
java.lang.Exception

requestData

public java.util.Map requestData(java.lang.String[] ids,
                                 java.lang.String[] recipient,
                                 java.lang.String[] purpose,
                                 java.lang.String retention)
                          throws java.io.IOException
Fordert die angegebenen Daten an. (BLOCKIERT am synchronizer)

Parameters:
ids - Namen der anzufordernden Daten.
Returns:
Map mit allen erhaltenen Daten.
java.io.IOException

requestAuthorizedCertificate

public byte[] requestAuthorizedCertificate()
                                    throws java.io.IOException
Zusicherung der Deanonymisierbarkeit anfordern.
ACHTUNG: Resultat noch nicht getestet/registriert.

java.io.IOException

requestCertificate

protected void requestCertificate(org.ssonet.io.IOStream ios)
                           throws java.io.IOException
Eigentliches Zertifikatanfordern.

java.io.IOException

blockCertificate

protected void blockCertificate(org.ssonet.io.IOStream ios)
                         throws java.io.IOException
Rückweisung der Zertifikatanforderung übermitteln.

java.io.IOException

sendCertificate

protected void sendCertificate(byte[] cert,
                               org.ssonet.io.IOStream ios)
                        throws java.io.IOException
Angefordertes Zertifikat übermitteln.

java.io.IOException

handleMessage

protected void handleMessage(byte b,
                             org.ssonet.io.IOStream ios)
                      throws java.io.IOException
Wertet eingehende Nachrichten aus.

Specified by:
handleMessage in class org.ssonet.io.IOFilterStream
Parameters:
b - Nachrichtenkode.
ios - IOStream zur Ein/Ausgabe.
java.io.IOException

replaceContext

public void replaceContext(org.ssonet.net.SSONETContext o,
                           org.ssonet.net.SSONETContext n)
Specified by:
replaceContext in interface org.ssonet.net.SSONETContextListener

contextChanged

public void contextChanged(org.ssonet.net.SSONETContext c)
Specified by:
contextChanged in interface org.ssonet.net.SSONETContextListener

addListener

public void addListener(idman.mngt.impl.P3PListener listener)

removeListener

public void removeListener(idman.mngt.impl.P3PListener listener)

notifySent

public void notifySent(java.lang.String[] ids,
                       java.lang.String[] recipient,
                       java.lang.String[] purpose,
                       java.lang.String retention)
Description copied from interface: NegotiationListener
Nachricht: Folgende Daten wurden übermittelt.

Specified by:
notifySent in interface NegotiationListener
Parameters:
ids - P3P-Kürzel der Daten (z.B. #user.name.given)
recipient - Empfänger
purpose - Zweck
retention - Speicherdauer

notifyReceived

public void notifyReceived(java.lang.String[] ids,
                           java.lang.String[] recipient,
                           java.lang.String[] purpose,
                           java.lang.String retention)
Description copied from interface: NegotiationListener
Nachricht: Folgende Daten wurden empfangen.

Specified by:
notifyReceived in interface NegotiationListener
Parameters:
ids - P3P-Kürzel der Daten (z.B. #user.name.given)
recipient - Empfänger
purpose - Zweck
retention - Speicherdauer

allowSend

public boolean allowSend(java.lang.String[] ids,
                         java.lang.String[] recipient,
                         java.lang.String[] purpose,
                         java.lang.String retention)
Description copied from interface: NegotiationListener
Frage: Dürfen folgende Daten übermittelt werden?

Specified by:
allowSend in interface NegotiationListener
Parameters:
ids - P3P-Kürzel der Daten (z.B. #user.name.given)
recipient - Empfänger
purpose - Zweck
retention - Speicherdauer

notifyDetect

void notifyDetect()

allowDetect

boolean allowDetect()


Copyright © 2003 DRIM Team. All Rights Reserved.