You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pe...@apache.org on 2007/01/18 10:52:26 UTC
svn commit: r497379 -
/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java
Author: pero
Date: Thu Jan 18 01:52:25 2007
New Revision: 497379
URL: http://svn.apache.org/viewvc?view=rev&rev=497379
Log:
Refactor and remove some duplicate code.
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java
Modified: tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java?view=diff&rev=497379&r1=497378&r2=497379
==============================================================================
--- tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java (original)
+++ tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/ClusterSingleSignOn.java Thu Jan 18 01:52:25 2007
@@ -51,6 +51,8 @@
* </ul>
*
* @author Fabien Carrion
+ * @author Peter Rossbach
+ * @version $Revision:$ $Date:$
*/
public class ClusterSingleSignOn
@@ -178,20 +180,7 @@
* @param session Session to be associated
*/
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());
- msg.setAction(SingleSignOnMessage.ADD_SESSION);
- cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
- }
+ sendSSOId(ssoId,session,SingleSignOnMessage.ADD_SESSION) ;
associateLocal(ssoId, session);
}
@@ -210,21 +199,8 @@
* @param session Session to be deregistered
*/
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());
- }
- deregisterLocal(ssoId, session);
+ sendSSOId(ssoId,session,SingleSignOnMessage.DEREGISTER_SESSION) ;
+ deregisterLocal(ssoId, session);
}
protected void deregisterLocal(String ssoId, Session session) {
@@ -240,17 +216,7 @@
* @param ssoId Single sign on identifier to deregister
*/
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());
- }
+ sendSSOId(ssoId,null,SingleSignOnMessage.LOGOUT_SESSION) ;
deregisterLocal(ssoId);
}
@@ -272,21 +238,10 @@
*/
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());
- }
- registerLocal(ssoId, principal, authType, username, password);
+ sendSSOIdWithAuth(ssoId,
+ authType, username, password,
+ SingleSignOnMessage.REGISTER_SESSION);
+ registerLocal(ssoId, principal, authType, username, password);
}
protected void registerLocal(String ssoId, Principal principal, String authType,
@@ -322,20 +277,9 @@
*/
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());
- }
+ sendSSOIdWithAuth(ssoId,
+ authType, username, password,
+ SingleSignOnMessage.UPDATE_SESSION);
updateLocal(ssoId, principal, authType, username, password);
}
@@ -352,25 +296,73 @@
* @param session the session to be removed.
*/
protected void removeSession(String ssoId, Session session) {
+ sendSSOId(ssoId,session,SingleSignOnMessage.REMOVE_SESSION) ;
+ removeSessionLocal(ssoId, session);
+ }
+
+ protected void removeSessionLocal(String ssoId, Session session) {
+ super.removeSession(ssoId, session);
+ }
+
+
+ /**
+ * Create SingleSignOnMessage with session informations and send to other domain members.
+ * @param ssoId identifier of Single sign to be updated
+ * @param session the session to be handle or null.
+ * @param action SSO Action type
+ */
+ protected void sendSSOId(String ssoId, Session session, int action) {
if (cluster != null) {
messageNumber++;
+ String sessionId = null ;
+ if(session != null)
+ sessionId = session.getId() ;
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.REMOVE_SESSION);
- cluster.sendClusterDomain(msg);
- if (containerLog.isDebugEnabled())
- containerLog.debug("SingleSignOnMessage Send with action "
- + msg.getAction());
+ ssoId, sessionId);
+ if(session != null) {
+ Manager mgr = session.getManager();
+ if ((mgr != null) && (mgr instanceof ClusterManager))
+ msg.setContextName(((ClusterManager) mgr).getName());
+ }
+ send(msg,action);
}
- removeSessionLocal(ssoId, session);
}
- protected void removeSessionLocal(String ssoId, Session session) {
- super.removeSession(ssoId, session);
+ /**
+ * Create SingleSignOnMessage with auth informations and send to other domain members.
+ * @param ssoId identifier of Single sign to be updated
+ * @param authType the type of authenticator used (BASIC, CLIENT-CERT,
+ * DIGEST or FORM)
+ * @param username the username (if any) used for the authentication
+ * @param password the password (if any) used for the authentication
+ * @param action SSO Action type
+ */
+ protected void sendSSOIdWithAuth(String ssoId,String authType,
+ String username, String password, int action) {
+ if (cluster != null) {
+ messageNumber++;
+ SingleSignOnMessage msg =
+ new SingleSignOnMessage(cluster.getLocalMember(),
+ ssoId, null);
+ msg.setAuthType(authType);
+ msg.setUsername(username);
+ msg.setPassword(password);
+ send(msg,action);
+ }
+ }
+
+ /**
+ * Send SingleSignOnMessage to other domain members.
+ * @param msg SingleSignOnMessage
+ * @param action SSO Action type
+ */
+ protected void send(SingleSignOnMessage msg, int action) {
+ msg.setAction(action);
+ cluster.sendClusterDomain(msg);
+ if (containerLog.isDebugEnabled())
+ containerLog.debug("SingleSignOnMessage Send with action "
+ + action);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org