manager
Class LoginManager

java.lang.Object
  extended by manager.LoginManager

public class LoginManager
extends java.lang.Object

Diese Klasse verwaltet alle eingeloggten User (inkl. login/logout), überprüft die Authentifizierung des Benutzers gegen die XML-Benutzer-DB und legt ein entsprechendes Kontext-Objekt an. Die Speicherung erfolgt m.H. einer Hashtable, wobei als Key die Session ID verwendet wird. Da nur eine Instanz von LoginManager existieren darf, ist diese als Singleton-Pattern implementiert.

Author:
Thorsten Berger

Constructor Summary
LoginManager()
          LoginManager instanziieren, d.h.
 
Method Summary
 java.util.Enumeration getAllUsers()
          Erstellt Aufzählung aller eingeloggten User
static LoginManager getInstance()
          LoginManager Singleton
 Kontext getKontextBySession(HttpSession session)
          Kontext vom User mit dieser Session zurückgeben.
 boolean isStaleSession(HttpSession s)
          Is das 'ne alte Session?
 boolean loggedInByLogin(java.lang.String login)
          User mit dieser Kennung bereits eingeloggt?
 boolean loggedInBySession(HttpSession session)
          User mit dieser Session eingeloggt?
 Kontext login(HttpServletRequest request, java.lang.String login, java.lang.String pw, boolean SSLwanted)
          User einloggen falls Passwort stimmt.
 void logoutByLogin(java.lang.String login)
          User ausloggen und sofort Session löschen.
 void logoutByLogin(java.lang.String login, java.lang.String sendMessage)
          User ausloggen und ihm beim nächsten Request Meldung ausgeben.
 void logoutBySession(HttpSession s)
          User ausloggen, Identifizierung über Session, die dann sofort invalidatet wird
 void logoutBySession(HttpSession s, java.lang.String sendMessage)
          User ausloggen und ihm beim nächsten Request Meldung ausgeben.
 void maintenanceEntry()
           
 java.lang.String removeStaleSession(HttpSession s)
          Bestimmte alte Session löschen.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LoginManager

public LoginManager()
             throws SingletonException
LoginManager instanziieren, d.h. Hashtable für eingeloggte User anlegen.

Throws:
SingletonException
Method Detail

getInstance

public static LoginManager getInstance()
LoginManager Singleton

Returns:
Instanz

login

public Kontext login(HttpServletRequest request,
                     java.lang.String login,
                     java.lang.String pw,
                     boolean SSLwanted)
              throws LoginFailedException,
                     AlreadyLoggedInException
User einloggen falls Passwort stimmt.

Parameters:
request - HttpServletRequest
login - Benutzerkennung
pw - Passwort
SSLwanted - wünscht User SSL?
Returns:
Kontext-Objekt für erfolgreich eingeloggten User
Throws:
LoginFailedException
AlreadyLoggedInException

maintenanceEntry

public void maintenanceEntry()

logoutByLogin

public void logoutByLogin(java.lang.String login)
User ausloggen und sofort Session löschen.

Parameters:
login - Login des Users

logoutByLogin

public void logoutByLogin(java.lang.String login,
                          java.lang.String sendMessage)
User ausloggen und ihm beim nächsten Request Meldung ausgeben. Intern wird das dadurch gelöst, dass die Session nicht gelöscht wird, sondern stattdessen solche in der Hashtable staleSessions gespeichert werden

Parameters:
login - Login des Users
sendMessage - Message, die User daraufhin geschickt werden soll

logoutBySession

public void logoutBySession(HttpSession s)
User ausloggen, Identifizierung über Session, die dann sofort invalidatet wird

Parameters:
s - Session des Users

logoutBySession

public void logoutBySession(HttpSession s,
                            java.lang.String sendMessage)
User ausloggen und ihm beim nächsten Request Meldung ausgeben.

Parameters:
s - Session des Users
sendMessage - Meldung für ausgeloggten User
See Also:
logoutByLogin(String, String)

loggedInBySession

public boolean loggedInBySession(HttpSession session)
User mit dieser Session eingeloggt?

Parameters:
session -
Returns:

loggedInByLogin

public boolean loggedInByLogin(java.lang.String login)
User mit dieser Kennung bereits eingeloggt?

Parameters:
login -
Returns:

getKontextBySession

public Kontext getKontextBySession(HttpSession session)
Kontext vom User mit dieser Session zurückgeben.

Parameters:
session -
Returns:

getAllUsers

public java.util.Enumeration getAllUsers()
Erstellt Aufzählung aller eingeloggten User

Returns:
Enumeration bestehend aus Kontext-Objekten

isStaleSession

public boolean isStaleSession(HttpSession s)
Is das 'ne alte Session?

Parameters:
s - Session
Returns:
See Also:
UebManager.processRequest(HttpServletRequest, HttpServletResponse)

removeStaleSession

public java.lang.String removeStaleSession(HttpSession s)
Bestimmte alte Session löschen. Diese Methode wird durch den SessionListener und den UebManager ausgelöst.

Parameters:
s -