kerberos.net
Class KerberosServerSocketImpl

java.lang.Object
  extended bykerberos.net.KerberosServerSocketImpl
All Implemented Interfaces:
KerberosServerSocket

public class KerberosServerSocketImpl
extends java.lang.Object
implements KerberosServerSocket

Diese Klasse stellt die Funktionalität eines ServerSockets zur Verfügung

Author:
Stephan Koops

Field Summary
static int ARRAY_MAX_LAENGE
          Speichert die Maximale Array-Länge für den KerberosServerSocket
static int STANDARD_SOCKET_ARRAY_MAX_LAENGE
          Speichert die Standard-Maximal-Array-Länge für die erzeugten KerberosSockets
 
Constructor Summary
KerberosServerSocketImpl(int port, int backlog, java.net.InetAddress bindAddr, Passwort passwort)
           
KerberosServerSocketImpl(int port, int backlog, Passwort passwort)
          Erzeugt einen Server-Socket, auf dem neue Verbindungen erwartet werden.
KerberosServerSocketImpl(int port, Passwort passwort)
          Erzeugt einen Server-Socket, auf dem neue Verbindungen erwartet werden.
 
Method Summary
 KerberosSocket accept()
          Nimmt eine Verbindung von einem Client an und gibt einen KerberosSocket zurück.
 void close()
          Ab dem Aufruf dieser Methode nimmt dieser KerberosServerSocket nimmt keine neuen Verbindungen mehr an.
 void closeLigth()
          Ab dem Aufruf dieser Methode nimmt dieser KerberosServerSocket nimmt keine neuen Verbindungen mehr an.
 java.net.InetAddress getInetAddress()
          Gibt die lokale Adresse dieses ServerSockets zurück
 int getLocalPort()
          Gibt den Port zurück, auf dem dieser Socket horcht.
 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.
 boolean isClosed()
           
 boolean isClosedLight()
           
 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 Arrays der erzeugten KerberosSockets zurück.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ARRAY_MAX_LAENGE

public static final int ARRAY_MAX_LAENGE
Speichert die Maximale Array-Länge für den KerberosServerSocket

See Also:
Constant Field Values

STANDARD_SOCKET_ARRAY_MAX_LAENGE

public static final int STANDARD_SOCKET_ARRAY_MAX_LAENGE
Speichert die Standard-Maximal-Array-Länge für die erzeugten KerberosSockets

See Also:
Constant Field Values
Constructor Detail

KerberosServerSocketImpl

public KerberosServerSocketImpl(int port,
                                Passwort passwort)
                         throws java.io.IOException,
                                PasswortFalschException,
                                PasswortDestroyedException
Erzeugt einen Server-Socket, auf dem neue Verbindungen erwartet werden.

Parameters:
port - Port, auf dem die Verbindungen erwartet werden
passwort - Passwort dieses Dienstes
Throws:
java.io.IOException - Wenn es Netzwerk-Probleme gab
PasswortFalschException - Wird geworfen, wenn das angegebene Passwort falsch ist
PasswortDestroyedException - Wird geworfen, wenn das angegebene Passwort schön zerstört worden ist.
See Also:
ServerSocket.ServerSocket(int)

KerberosServerSocketImpl

public KerberosServerSocketImpl(int port,
                                int backlog,
                                Passwort passwort)
                         throws java.io.IOException,
                                PasswortFalschException,
                                PasswortDestroyedException
Erzeugt einen Server-Socket, auf dem neue Verbindungen erwartet werden.

Parameters:
port - Port, auf dem dieser ServerSocket auf Verbindungen wartet
backlog -
passwort - Passwort dieses Dienstes
Throws:
java.io.IOException - Wenn es Netzwerk-Probleme gab
PasswortFalschException - Wird geworfen, wenn das angegebene Passwort falsch ist
PasswortDestroyedException - Wird geworfen, wenn das angegebene Passwort schön zerstört worden ist.
See Also:
KerberosServerSocketImpl(int, Passwort), ServerSocket.ServerSocket(int,int)

KerberosServerSocketImpl

public KerberosServerSocketImpl(int port,
                                int backlog,
                                java.net.InetAddress bindAddr,
                                Passwort passwort)
                         throws java.io.IOException,
                                PasswortFalschException,
                                PasswortDestroyedException
Parameters:
port - Port, auf dem dieser ServerSocket auf Verbindungen wartet
backlog -
bindAddr -
passwort - Passwort dieses Dienstes
Throws:
java.io.IOException - Wenn es Netzwerk-Probleme gab
KerberosException - Alle hier geworfenen Exceptions (außer IOException) sind von der KerberosException abgeleitet. Einzelheiten siehe in den jeweiligen Exceptions.
PasswortFalschException
PasswortDestroyedException
See Also:
KerberosServerSocketImpl(int, Passwort), KerberosServerSocketImpl(int, int, Passwort), ServerSocket.ServerSocket(int,int,java.net.InetAddress)
Method Detail

accept

public KerberosSocket accept()
                      throws java.io.IOException,
                             KerberosRuntimeException
Nimmt eine Verbindung von einem Client an und gibt einen KerberosSocket zurück. Da das Annehmen der TCP-Verbindungen und danach die Authentifizierung in einem anderen Thread läuft, wird die zuletzt aufgetretende Exceptions gesammelt und beim Aufruf der Methode accept geworfen.

Specified by:
accept in interface KerberosServerSocket
Throws:
IOEXception - Wenn es ein Netzwerkproblem gab.
KerberosRuntimeException, - wenn es beim Schreiben auf einen Memory-Stream eine IO-Exception gab. Dies sollte aber eigentlich nicht vorkommen. Die IOException wird dann als Grund der RuntimeException angegeben. Eine RuntimeException kann auch geworfen werden, wenn festgestellt wurde, dass das nicht autorisierte Nachrichten empfangen wurden. Dies passiert dann, wenn jemand ungültige Daten schickt.
java.io.IOException
KerberosRuntimeException
See Also:
ServerSocket.accept()

close

public void close()
           throws java.io.IOException
Description copied from interface: KerberosServerSocket
Ab dem Aufruf dieser Methode nimmt dieser KerberosServerSocket nimmt keine neuen Verbindungen mehr an. Auch schon angenommene Verbindungen und authentifizierte Verbindungen werden abgebrochen.

Specified by:
close in interface KerberosServerSocket
Throws:
java.io.IOException
See Also:
ServerSocket.close()

closeLigth

public void closeLigth()
                throws java.io.IOException
Description copied from interface: KerberosServerSocket
Ab dem Aufruf dieser Methode nimmt dieser KerberosServerSocket nimmt keine neuen Verbindungen mehr an. Schon angenommene Verbindungen und authentifizierte können mit accept() abgerufen werden.

Specified by:
closeLigth in interface KerberosServerSocket
Throws:
java.io.IOException
See Also:
KerberosServerSocket.closeLigth()

getInetAddress

public java.net.InetAddress getInetAddress()
Gibt die lokale Adresse dieses ServerSockets zurück

Specified by:
getInetAddress in interface KerberosServerSocket
See Also:
Socket.getInetAddress()

getLocalPort

public int getLocalPort()
Description copied from interface: KerberosServerSocket
Gibt den Port zurück, auf dem dieser Socket horcht.

Specified by:
getLocalPort in interface KerberosServerSocket
See Also:
ServerSocket.getLocalPort()

isClosed

public boolean isClosed()
Specified by:
isClosed in interface KerberosServerSocket
Returns:
Gibt true zurück, wenn der ServerSocket ganz geschlossen ist, d.h. wenn keine Verbindungen mehr angenommen werden und auch keine schon authentifizierten Verbindungen mehr auf ihr accept() warten.
See Also:
ServerSocket.isClosed(), isClosedLight(), close()

isClosedLight

public boolean isClosedLight()
Specified by:
isClosedLight in interface KerberosServerSocket
Returns:
Gibt true zurück, wenn der ServerSocket keine neuen Verbindungen mehr annimmt. Ob noch schon authorizierte Verbindungen auf ihr accept warten, wird nicht geprüft.
See Also:
isClosed(), closeLigth()

toString

public java.lang.String toString()

getMaxArrayLength

public int getMaxArrayLength()
Gibt die maximal erlaubte Länge für zu empfangende Arrays der erzeugten KerberosSockets zurück.

Specified by:
getMaxArrayLength in interface KerberosServerSocket

setMaxArrayLength

public void setMaxArrayLength(int i)
                       throws ZahlNichtPositivException
Setzt die maximal erlaubte Länge für zu empfangende Arrays der erzeugten KerberosSockets zurück.

Specified by:
setMaxArrayLength in interface KerberosServerSocket
Throws:
ZahlNichtPositivException
See Also:
getMaxArrayLength()

getLogger

public Logger getLogger()
Description copied from interface: KerberosServerSocket
Gibt den aktuell verwendeten Logger zurück

Specified by:
getLogger in interface KerberosServerSocket
Returns:
Gibt den derzeit aktuellen Logger zurück
See Also:
KerberosServerSocket.setLogger(Logger)

setLogger

public void setLogger(Logger logger)
Description copied from interface: KerberosServerSocket
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 am Anfang gesetzt werden.

Specified by:
setLogger in interface KerberosServerSocket
Parameters:
logger -