Cluster cluster = getCluster();
// stop remove cluster binding
if(cluster == null) {
- Container host = getContainer();
- if(host != null && host instanceof Host) {
- cluster = host.getCluster();
- if(cluster != null && cluster instanceof CatalinaCluster) {
- setCluster((CatalinaCluster) cluster);
- getCluster().addClusterListener(clusterSSOListener);
- } else {
- Container engine = host.getParent();
- if(engine != null && engine instanceof Engine) {
- cluster = engine.getCluster();
- if(cluster != null && cluster instanceof CatalinaCluster) {
- setCluster((CatalinaCluster) cluster);
- getCluster().addClusterListener(clusterSSOListener);
- }
- } else {
- cluster = null;
- }
- }
+ Container host = getContainer();
+ if(host != null && host instanceof Host) {
+ cluster = host.getCluster();
+ if(cluster != null && cluster instanceof CatalinaCluster) {
+ setCluster((CatalinaCluster) cluster);
+ getCluster().addClusterListener(clusterSSOListener);
+ } else {
+ Container engine = host.getParent();
+ if(engine != null && engine instanceof Engine) {
+ cluster = engine.getCluster();
+ if(cluster != null && cluster instanceof CatalinaCluster) {
+ setCluster((CatalinaCluster) cluster);
+ getCluster().addClusterListener(clusterSSOListener);
+ }
+ } else {
+ cluster = null;
+ }
+ }
}
}
if (cluster == null) {
@Override
protected void associate(String ssoId, Session session) {
- if (cluster != null) {
- messageNumber++;
- SingleSignOnMessage msg =
- new SingleSignOnMessage(cluster.getLocalMember(),
- ssoId, session.getId());
- Manager mgr = session.getManager();
- if ((mgr != null) && (mgr instanceof ClusterManager))
- msg.setContextName(((ClusterManager) mgr).getName());
+ if (cluster != null) {
+ messageNumber++;
+ SingleSignOnMessage msg =
+ new SingleSignOnMessage(cluster.getLocalMember(),
+ ssoId, session.getId());
+ Manager mgr = session.getManager();
+ if ((mgr != null) && (mgr instanceof ClusterManager))
+ msg.setContextName(((ClusterManager) mgr).getName());
- msg.setAction(SingleSignOnMessage.ADD_SESSION);
+ msg.setAction(SingleSignOnMessage.ADD_SESSION);
- cluster.sendClusterDomain(msg);
+ cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
- }
+ if (containerLog.isDebugEnabled())
+ containerLog.debug("SingleSignOnMessage Send with action "
+ + msg.getAction());
+ }
- associateLocal(ssoId, session);
+ associateLocal(ssoId, session);
}
protected void associateLocal(String ssoId, Session session) {
- super.associate(ssoId, session);
+ super.associate(ssoId, session);
}
@Override
protected void deregister(String ssoId, Session session) {
- if (cluster != null) {
- messageNumber++;
- SingleSignOnMessage msg =
- new SingleSignOnMessage(cluster.getLocalMember(),
- ssoId, session.getId());
- Manager mgr = session.getManager();
- if ((mgr != null) && (mgr instanceof ClusterManager))
- msg.setContextName(((ClusterManager) mgr).getName());
-
- msg.setAction(SingleSignOnMessage.DEREGISTER_SESSION);
-
- cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
- }
+ if (cluster != null) {
+ messageNumber++;
+ SingleSignOnMessage msg =
+ new SingleSignOnMessage(cluster.getLocalMember(),
+ ssoId, session.getId());
+ Manager mgr = session.getManager();
+ if ((mgr != null) && (mgr instanceof ClusterManager))
+ msg.setContextName(((ClusterManager) mgr).getName());
+
+ msg.setAction(SingleSignOnMessage.DEREGISTER_SESSION);
+
+ cluster.sendClusterDomain(msg);
+ if (containerLog.isDebugEnabled())
+ containerLog.debug("SingleSignOnMessage Send with action "
+ + msg.getAction());
+ }
- deregisterLocal(ssoId, session);
+ deregisterLocal(ssoId, session);
}
protected void deregisterLocal(String ssoId, Session session) {
- super.deregister(ssoId, session);
+ super.deregister(ssoId, session);
}
@Override
protected void deregister(String ssoId) {
- if (cluster != null) {
- messageNumber++;
- SingleSignOnMessage msg =
- new SingleSignOnMessage(cluster.getLocalMember(),
- ssoId, null);
- msg.setAction(SingleSignOnMessage.LOGOUT_SESSION);
-
- cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
- }
+ if (cluster != null) {
+ messageNumber++;
+ SingleSignOnMessage msg =
+ new SingleSignOnMessage(cluster.getLocalMember(),
+ ssoId, null);
+ msg.setAction(SingleSignOnMessage.LOGOUT_SESSION);
+
+ cluster.sendClusterDomain(msg);
+ if (containerLog.isDebugEnabled())
+ containerLog.debug("SingleSignOnMessage Send with action "
+ + msg.getAction());
+ }
- deregisterLocal(ssoId);
+ deregisterLocal(ssoId);
}
protected void deregisterLocal(String ssoId) {
- super.deregister(ssoId);
+ super.deregister(ssoId);
}
protected void register(String ssoId, Principal principal, String authType,
String username, String password) {
- if (cluster != null) {
- messageNumber++;
- SingleSignOnMessage msg =
- new SingleSignOnMessage(cluster.getLocalMember(),
- ssoId, null);
- msg.setAction(SingleSignOnMessage.REGISTER_SESSION);
- msg.setAuthType(authType);
- msg.setUsername(username);
- msg.setPassword(password);
-
- cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
- }
+ if (cluster != null) {
+ messageNumber++;
+ SingleSignOnMessage msg =
+ new SingleSignOnMessage(cluster.getLocalMember(),
+ ssoId, null);
+ msg.setAction(SingleSignOnMessage.REGISTER_SESSION);
+ msg.setAuthType(authType);
+ msg.setUsername(username);
+ msg.setPassword(password);
+
+ cluster.sendClusterDomain(msg);
+ if (containerLog.isDebugEnabled())
+ containerLog.debug("SingleSignOnMessage Send with action "
+ + msg.getAction());
+ }
- registerLocal(ssoId, principal, authType, username, password);
+ registerLocal(ssoId, principal, authType, username, password);
}
protected void registerLocal(String ssoId, Principal principal, String authType,
String username, String password) {
- super.register(ssoId, principal, authType, username, password);
+ super.register(ssoId, principal, authType, username, password);
}
protected void update(String ssoId, Principal principal, String authType,
String username, String password) {
- if (cluster != null) {
- messageNumber++;
- SingleSignOnMessage msg =
- new SingleSignOnMessage(cluster.getLocalMember(),
- ssoId, null);
- msg.setAction(SingleSignOnMessage.UPDATE_SESSION);
- msg.setAuthType(authType);
- msg.setUsername(username);
- msg.setPassword(password);
-
- cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
- }
+ if (cluster != null) {
+ messageNumber++;
+ SingleSignOnMessage msg =
+ new SingleSignOnMessage(cluster.getLocalMember(),
+ ssoId, null);
+ msg.setAction(SingleSignOnMessage.UPDATE_SESSION);
+ msg.setAuthType(authType);
+ msg.setUsername(username);
+ msg.setPassword(password);
+
+ cluster.sendClusterDomain(msg);
+ if (containerLog.isDebugEnabled())
+ containerLog.debug("SingleSignOnMessage Send with action "
+ + msg.getAction());
+ }
- updateLocal(ssoId, principal, authType, username, password);
+ updateLocal(ssoId, principal, authType, username, password);
}
protected void updateLocal(String ssoId, Principal principal, String authType,
String username, String password) {
- super.update(ssoId, principal, authType, username, password);
+ super.update(ssoId, principal, authType, username, password);
}
@Override
protected void removeSession(String ssoId, Session session) {
- if (cluster != null) {
- messageNumber++;
- SingleSignOnMessage msg =
- new SingleSignOnMessage(cluster.getLocalMember(),
- ssoId, session.getId());
+ if (cluster != null) {
+ messageNumber++;
+ SingleSignOnMessage msg =
+ new SingleSignOnMessage(cluster.getLocalMember(),
+ ssoId, session.getId());
- Manager mgr = session.getManager();
- if ((mgr != null) && (mgr instanceof ClusterManager))
- msg.setContextName(((ClusterManager) mgr).getName());
+ Manager mgr = session.getManager();
+ if ((mgr != null) && (mgr instanceof ClusterManager))
+ msg.setContextName(((ClusterManager) mgr).getName());
- msg.setAction(SingleSignOnMessage.REMOVE_SESSION);
+ msg.setAction(SingleSignOnMessage.REMOVE_SESSION);
- cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
- }
+ cluster.sendClusterDomain(msg);
+ if (containerLog.isDebugEnabled())
+ containerLog.debug("SingleSignOnMessage Send with action "
+ + msg.getAction());
+ }
- removeSessionLocal(ssoId, session);
+ removeSessionLocal(ssoId, session);
}
protected void removeSessionLocal(String ssoId, Session session) {
- super.removeSession(ssoId, session);
-
+ super.removeSession(ssoId, session);
+
}
}
if (myobj != null && myobj instanceof SingleSignOnMessage) {
SingleSignOnMessage msg = (SingleSignOnMessage) myobj;
int action = msg.getAction();
- Session session = null;
-
- if (log.isDebugEnabled())
- log.debug("SingleSignOnMessage Received with action "
- + msg.getAction());
-
- switch(action) {
- case SingleSignOnMessage.ADD_SESSION:
- session = getSession(msg.getSessionId(),
- msg.getContextName());
- if (session != null)
- clusterSSO.associateLocal(msg.getSsoId(), session);
- break;
- case SingleSignOnMessage.DEREGISTER_SESSION:
- session = getSession(msg.getSessionId(),
- msg.getContextName());
- if (session != null)
- clusterSSO.deregisterLocal(msg.getSsoId(), session);
- break;
- case SingleSignOnMessage.LOGOUT_SESSION:
- clusterSSO.deregisterLocal(msg.getSsoId());
- break;
- case SingleSignOnMessage.REGISTER_SESSION:
- clusterSSO.registerLocal(msg.getSsoId(), null, msg.getAuthType(),
- msg.getUsername(), msg.getPassword());
- break;
- case SingleSignOnMessage.UPDATE_SESSION:
- clusterSSO.updateLocal(msg.getSsoId(), null, msg.getAuthType(),
- msg.getUsername(), msg.getPassword());
- break;
- case SingleSignOnMessage.REMOVE_SESSION:
- session = getSession(msg.getSessionId(),
- msg.getContextName());
- if (session != null)
- clusterSSO.removeSessionLocal(msg.getSsoId(), session);
- break;
- }
- }
+ Session session = null;
+
+ if (log.isDebugEnabled())
+ log.debug("SingleSignOnMessage Received with action "
+ + msg.getAction());
+
+ switch(action) {
+ case SingleSignOnMessage.ADD_SESSION:
+ session = getSession(msg.getSessionId(),
+ msg.getContextName());
+ if (session != null)
+ clusterSSO.associateLocal(msg.getSsoId(), session);
+ break;
+ case SingleSignOnMessage.DEREGISTER_SESSION:
+ session = getSession(msg.getSessionId(),
+ msg.getContextName());
+ if (session != null)
+ clusterSSO.deregisterLocal(msg.getSsoId(), session);
+ break;
+ case SingleSignOnMessage.LOGOUT_SESSION:
+ clusterSSO.deregisterLocal(msg.getSsoId());
+ break;
+ case SingleSignOnMessage.REGISTER_SESSION:
+ clusterSSO.registerLocal(msg.getSsoId(), null, msg.getAuthType(),
+ msg.getUsername(), msg.getPassword());
+ break;
+ case SingleSignOnMessage.UPDATE_SESSION:
+ clusterSSO.updateLocal(msg.getSsoId(), null, msg.getAuthType(),
+ msg.getUsername(), msg.getPassword());
+ break;
+ case SingleSignOnMessage.REMOVE_SESSION:
+ session = getSession(msg.getSessionId(),
+ msg.getContextName());
+ if (session != null)
+ clusterSSO.removeSessionLocal(msg.getSsoId(), session);
+ break;
+ }
+ }
}
/**
private Session getSession(String sessionId, String ctxname) {
-
- Map<String,ClusterManager> managers = clusterSSO.getCluster().getManagers();
- Session session = null;
-
- if (ctxname == null) {
- java.util.Iterator<String> i = managers.keySet().iterator();
- while (i.hasNext()) {
- String key = i.next();
- ClusterManager mgr = managers.get(key);
- if (mgr != null) {
- try {
- session = mgr.findSession(sessionId);
- } catch (IOException io) {
- log.error("Session doesn't exist:" + io);
- }
- return session;
- } else {
- //this happens a lot before the system has started
- // up
- if (log.isDebugEnabled())
- log.debug("Context manager doesn't exist:"
- + key);
- }
- }
- } else {
- ClusterManager mgr = managers.get(ctxname);
- if (mgr != null) {
- try {
- session = mgr.findSession(sessionId);
- } catch (IOException io) {
- log.error("Session doesn't exist:" + io);
- }
- return session;
- } else if (log.isErrorEnabled())
- log.error("Context manager doesn't exist:" + ctxname);
- }
-
- return null;
+
+ Map<String,ClusterManager> managers = clusterSSO.getCluster().getManagers();
+ Session session = null;
+
+ if (ctxname == null) {
+ java.util.Iterator<String> i = managers.keySet().iterator();
+ while (i.hasNext()) {
+ String key = i.next();
+ ClusterManager mgr = managers.get(key);
+ if (mgr != null) {
+ try {
+ session = mgr.findSession(sessionId);
+ } catch (IOException io) {
+ log.error("Session doesn't exist:" + io);
+ }
+ return session;
+ } else {
+ //this happens a lot before the system has started
+ // up
+ if (log.isDebugEnabled())
+ log.debug("Context manager doesn't exist:"
+ + key);
+ }
+ }
+ } else {
+ ClusterManager mgr = managers.get(ctxname);
+ if (mgr != null) {
+ try {
+ session = mgr.findSession(sessionId);
+ } catch (IOException io) {
+ log.error("Session doesn't exist:" + io);
+ }
+ return session;
+ } else if (log.isErrorEnabled())
+ log.error("Context manager doesn't exist:" + ctxname);
+ }
+
+ return null;
}
}
private String uniqueId = null;
public SingleSignOnMessage(Member source,
- String ssoId,
- String sessionId) {
+ String ssoId,
+ String sessionId) {
this.address = source;
- this.ssoId = ssoId;
- this.sessionId = sessionId;
+ this.ssoId = ssoId;
+ this.sessionId = sessionId;
}
/**
* that originally sent it.
*/
public Member getAddress() {
- return address;
+ return address;
}
/**
* @param member Member
*/
public void setAddress(Member member) {
- this.address = member;
+ this.address = member;
}
/**
* @return String
*/
public String getUniqueId() {
- if (this.uniqueId != null)
- return this.uniqueId;
- StringBuilder result = new StringBuilder(getSsoId());
- result.append("#-#");
- result.append(System.currentTimeMillis());
- return result.toString();
+ if (this.uniqueId != null)
+ return this.uniqueId;
+ StringBuilder result = new StringBuilder(getSsoId());
+ result.append("#-#");
+ result.append(System.currentTimeMillis());
+ return result.toString();
}
public void setUniqueId(String uniqueId) {
}
public int getAction() {
- return action;
+ return action;
}
public void setAction(int action) {
- this.action = action;
+ this.action = action;
}
public String getSsoId() {
- return ssoId;
+ return ssoId;
}
public void setSsoId(String ssoId) {
- this.ssoId = ssoId;
+ this.ssoId = ssoId;
}
public String getContextName() {
- return ctxname;
+ return ctxname;
}
public void setContextName(String ctxname) {
- this.ctxname = ctxname;
+ this.ctxname = ctxname;
}
public String getSessionId() {
- return sessionId;
+ return sessionId;
}
public void setSessionId(String sessionId) {
- this.sessionId = sessionId;
+ this.sessionId = sessionId;
}
public String getAuthType() {
- return authType;
+ return authType;
}
public void setAuthType(String authType) {
- this.authType = authType;
+ this.authType = authType;
}
public String getPassword() {
- return password;
+ return password;
}
public void setPassword(String password) {
- this.password = password;
+ this.password = password;
}
public String getUsername() {
- return username;
+ return username;
}
public void setUsername(String username) {
- this.username = username;
+ this.username = username;
}
public String toString() {
StringBuilder sb = new StringBuilder("SingleSignOnMessage[action=");
- sb.append(getAction()).append(", ssoId=").append(getSsoId());
- sb.append(", sessionId=").append(getSessionId()).append(", username=");
- sb.append(getUsername()).append("]");
+ sb.append(getAction()).append(", ssoId=").append(getSsoId());
+ sb.append(", sessionId=").append(getSessionId()).append(", username=");
+ sb.append(getUsername()).append("]");
return (sb.toString());
}