1 46 47 package org.mr.kernel.security; 48 49 import org.mr.kernel.security.authentication.MaximumNumberOfSessionsPerUserReached; 50 51 import java.util.*; 52 53 66 public class SessionMap { 67 private Map _userToSessions; 68 69 73 public SessionMap(){ 74 _userToSessions = new HashMap(); 75 } 76 77 84 public void addSessionToUser(UserPrincipal user, SessionID sessionID) throws MaximumNumberOfSessionsPerUserReached { 85 if (_userToSessions.containsKey(user)) 86 ((SessionsList) (_userToSessions.get(user))).addSession(sessionID); 87 else { 88 SessionsList list = new SessionsList(); 89 list.addSession(sessionID); 90 _userToSessions.put(user, list); 91 } 92 } 93 94 100 public void removeSession(SessionID sessionID){ 101 Set set = _userToSessions.keySet(); 102 Iterator iter = set.iterator(); 103 boolean found = false; 104 while (iter.hasNext() && !found){ 105 UserPrincipal user = (UserPrincipal) iter.next(); 106 SessionsList list = (SessionsList) _userToSessions.get(user); 107 if (list.contains(sessionID)){ 108 list.removeSession(sessionID); 109 found = true; 110 } 111 } 112 } 113 114 120 public boolean contains(SessionID sessionID){ 121 Set set = _userToSessions.keySet(); 122 Iterator iter = set.iterator(); 123 while (iter.hasNext()){ 124 UserPrincipal user = (UserPrincipal) iter.next(); 125 SessionsList list = (SessionsList) _userToSessions.get(user); 126 if (list.contains(sessionID)) 127 return true; 128 } 129 return false; 130 } 131 132 138 public UserPrincipal getPrincipal(SessionID sessionID){ 139 Set set = _userToSessions.keySet(); 140 Iterator iter = set.iterator(); 141 while (iter.hasNext()){ 142 UserPrincipal principal = (UserPrincipal) iter.next(); 143 SessionsList list = (SessionsList) _userToSessions.get(principal); 144 if (list.contains(sessionID)) 145 return principal; 146 } 147 return null; 148 } 149 150 156 public int getNumOfSessionsPerUser(UserPrincipal user){ 157 if (!_userToSessions.containsKey(user)) 158 return 0; 159 SessionsList list = (SessionsList) _userToSessions.get(user); 160 return list.size(); 161 } 162 } 163 | Popular Tags |