HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

"Alternative Approaches to Architecting Logon and User Management"
Vol. 8, Issue 3, p. 23


Listing 1

      String username = request.getParameter("username");

      HttpSession session = ((HttpServletRequest)request).getSession(true);

      boolean liu = LoggedInUserTable.isLoggedInUser(username);
      if (!liu)
       LoggedInUserTable.addLoggedInUser(session.getId(), username);
       String userSessionId = LoggedInUserTable.getSessionId(username);
        if ( userSessionId != session.getId())

Listing 2

     public class UserTracker implements  HttpSessionListener {
     String sessionId = null;

     public void sessionCreated(HttpSessionEvent e) {
      public void sessionDestroyed(HttpSessionEvent e) {



Listing 3

     public class LoggedInUserTable {

     /** A Hashtable of all of the active users. */

     private static Hashtable LoggedInUsers = new Hashtable ();

     public static boolean isLoggedInUser (String username) {
     return  LoggedInUsers.containsValue(username);

     public static void addLoggedInUser ( String sessionId, String username) {
     LoggedInUsers.put (sessionId, username);

     public static String getSessionId(String username) {
     return (String) LoggedInUsers.get(username);


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.