kerberos.net
Interface KerberosClientSocketFactory

All Known Implementing Classes:
KerberosClientSocketFactoryImpl, KerberosTestClientSocketFactory

public interface KerberosClientSocketFactory

Diese Klasse Dient auf der Clientseite dazu, die KerberosSockets zu erzeugen. Die Factory speichert auch das Ticket-Granting-Ticket.

Author:
Stephan Koops

Method Summary
 KerberosSocket connect(java.lang.String hostname, int port, java.lang.String zieldienst)
          Baut eine Verbindung zum Ziel-Server auf.
 void destroy()
          Zerstört die alle sensiblen Daten dieser Factory, also Tickets und Schlüssel, so dass diese garantiert aus dem RAM gelöscht werden.
 Logger getLogger()
          Gibt den aktuell verwendeten Logger zurück
 int getMaxArrayLength()
          Gibt die maximal erlaubte Länge für zu empfangende Arrays der erzeugten KerberosSockets zurück.
 void setLogger(Logger logger)
          Setzt den Logger, der ab sofort für die neu erstellten KerberosSockets verwendet wird.
 void setMaxArrayLength(int i)
          Setzt die maximal erlaubte Länge für zu empfangende Nachrichten
 

Method Detail

connect

public KerberosSocket connect(java.lang.String hostname,
                              int port,
                              java.lang.String zieldienst)
                       throws ArrayZuLangException,
                              java.io.IOException,
                              FactoryDestroyedException,
                              PasswortFalschException,
                              ClientnameFalschException,
                              UngültigerMessageTypException,
                              NonceFalschException,
                              UnerwarteteNachrichtException,
                              UnbekannterParticipalException,
                              ServerdienstNichtVorhandenException,
                              TicketUngueltigException
Baut eine Verbindung zum Ziel-Server auf. Die Verbindung ist ist mit Kerberos verschlüsselt. Die Factory darf vorher nicht mit destroy() zerstört worden sein.

Parameters:
hostname - Hostname (oder IP-Adresse) des Ziel-Servers
port - Port auf dem Ziel-Server
zieldienst - Name des Ziel-Dienstes im KDC
Throws:
java.io.IOException - wenn es beim Socket erzeugen oder bei der Anmeldung beim KDC Netzwerk-Probleme gab.
KerberosException - Alle hier geworfenen Exceptions (außer IOException) sind von der KerberosException abgeleitet. Die Bedeutung der Exception ist im Javadoc zu den entsprechenden Klassen erläutert.
ArrayZuLangException
FactoryDestroyedException
PasswortFalschException
ClientnameFalschException
UngültigerMessageTypException
NonceFalschException
UnerwarteteNachrichtException
UnbekannterParticipalException
ServerdienstNichtVorhandenException
TicketUngueltigException
See Also:
destroy()

destroy

public void destroy()
Zerstört die alle sensiblen Daten dieser Factory, also Tickets und Schlüssel, so dass diese garantiert aus dem RAM gelöscht werden. Die Factory ist danach nicht mehr nutzbar, und wirft bei Benutzung der Methode connect(String, int, String) eine FactoryDestroyedException.

See Also:
connect(String, int, String), FactoryDestroyedException

getMaxArrayLength

public int getMaxArrayLength()
Gibt die maximal erlaubte Länge für zu empfangende Arrays der erzeugten KerberosSockets zurück.
Die maximale Länge lässt sich begrenzen, damit kein Angreifer vorgibt, dass ein 1 Giga-Byte großes Array eingelesen weren soll. Dann würde nähmlich ein entsprechend großes Array erzeugt werde, was die meisten Rechner mit einem OutOfMemoryError quittieren würden.

See Also:
OutOfMemoryError

setMaxArrayLength

public void setMaxArrayLength(int i)
                       throws ZahlNichtPositivException
Setzt die maximal erlaubte Länge für zu empfangende Nachrichten

Throws:
ZahlNichtPositivException
See Also:
getMaxArrayLength()

setLogger

public void setLogger(Logger logger)
Setzt den Logger, der ab sofort für die neu erstellten KerberosSockets verwendet wird. Für schon erzeugte Sockets müsste der Logger dort explizit verändert werden. Deshalb sollte der Logger einmal beim Starten der Anwendung gesetzt werden.

Parameters:
logger - Wenn der Logger null ist, werden die Sachen nicht mehr geloggt.

getLogger

public Logger getLogger()
Gibt den aktuell verwendeten Logger zurück

See Also:
setLogger(Logger)