[jboss-cvs] JBossAS SVN: r112299 - in branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat: service/sso and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Oct 7 17:00:09 EDT 2011


Author: dehort
Date: 2011-10-07 17:00:09 -0400 (Fri, 07 Oct 2011)
New Revision: 112299

Modified:
   branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/security/login/WebAuthentication.java
   branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/ClusteredSingleSignOn.java
   branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/SingleSignOnEntry.java
Log:
Fixing a bug where the WebAuthentication module does not work in a Clustered SSO environment
[JBPAPP-7117]


Modified: branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/security/login/WebAuthentication.java
===================================================================
--- branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/security/login/WebAuthentication.java	2011-10-07 17:59:02 UTC (rev 112298)
+++ branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/security/login/WebAuthentication.java	2011-10-07 21:00:09 UTC (rev 112299)
@@ -48,7 +48,7 @@
  */
 public class WebAuthentication
 {
-   private static final String AUTH_TYPE = "PROGRAMMATIC_WEB_LOGIN";
+   public static final String AUTH_TYPE = "PROGRAMMATIC_WEB_LOGIN";
 
    public WebAuthentication()
    {

Modified: branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/ClusteredSingleSignOn.java
===================================================================
--- branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/ClusteredSingleSignOn.java	2011-10-07 17:59:02 UTC (rev 112298)
+++ branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/ClusteredSingleSignOn.java	2011-10-07 21:00:09 UTC (rev 112299)
@@ -24,6 +24,10 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.List;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.StringTokenizer;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -43,12 +47,14 @@
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
 import org.apache.catalina.session.ManagerBase;
+import org.apache.catalina.authenticator.Constants;
 import org.apache.tomcat.util.modeler.Registry;
 import org.jboss.web.tomcat.service.session.JBossManager;
 import org.jboss.web.tomcat.service.sso.spi.FullyQualifiedSessionId;
 import org.jboss.web.tomcat.service.sso.spi.SSOClusterManager;
 import org.jboss.web.tomcat.service.sso.spi.SSOCredentials;
 import org.jboss.web.tomcat.service.sso.spi.SSOLocalManager;
+import org.jboss.web.tomcat.security.login.WebAuthentication;
 
 
 /**
@@ -143,6 +149,11 @@
    /** Used for sync locking of processExpires runs */
    private final Object mutex = new Object();
 
+   private List<String> canReauthTypes = 
+     new ArrayList(Arrays.asList(Constants.BASIC_METHOD, 
+                                 Constants.FORM_METHOD,
+                                 WebAuthentication.AUTH_TYPE));
+
    // ------------------------------------------------------------- Properties
 
    /**
@@ -393,7 +404,16 @@
       return lastProcessExpires;
    }
 
+   public void setReauthTypes(String reauthTypes)
+   {
+     StringTokenizer st = new StringTokenizer(reauthTypes, ",");
+     while(st.hasMoreTokens())
+     {
+       this.canReauthTypes.add(st.nextToken());
+     }
+   }
 
+
    // ------------------------------------------------------ Lifecycle Methods
 
 
@@ -905,7 +925,8 @@
          {
             sso = new JBossSingleSignOnEntry(null, credentials.getAuthType(), 
                                              credentials.getUsername(), 
-                                             credentials.getPassword());
+                                             credentials.getPassword(),
+                                             this.canReauthTypes);
             // Store it locally
             synchronized (cache)
             {
@@ -1117,7 +1138,7 @@
       synchronized (cache)
       {
          cache.put(ssoId, new JBossSingleSignOnEntry(principal, authType,
-            username, password));
+            username, password, this.canReauthTypes));
       }
    }
 

Modified: branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/SingleSignOnEntry.java
===================================================================
--- branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/SingleSignOnEntry.java	2011-10-07 17:59:02 UTC (rev 112298)
+++ branches/JBPAPP_5_1_1_GA_JBPAPP-7117/tomcat/src/main/org/jboss/web/tomcat/service/sso/SingleSignOnEntry.java	2011-10-07 21:00:09 UTC (rev 112299)
@@ -16,9 +16,9 @@
 package org.jboss.web.tomcat.service.sso;
 
 import java.security.Principal;
+import java.util.List;
 
 import org.apache.catalina.Session;
-import org.apache.catalina.authenticator.Constants;
 import org.apache.catalina.authenticator.SingleSignOn;
 import org.apache.catalina.authenticator.SingleSignOnEntry;
 
@@ -31,11 +31,13 @@
  */
 class JBossSingleSignOnEntry extends SingleSignOnEntry
 {
+    private List<String> canReauthTypes;
 
     public JBossSingleSignOnEntry(Principal principal, String authType,
-            String username, String password)
+            String username, String password, List<String> canReauthTypes)
     {
     	super(principal, authType, username, password);
+      this.canReauthTypes = canReauthTypes;
     }
 	
    // ------------------------------------------------------- Package Methods
@@ -133,7 +135,15 @@
     */
    public boolean getCanReauthenticate()
    {
-      return (this.canReauthenticate);
+      for( String reAuthType : this.canReauthTypes )
+      {
+        if( reAuthType.equals(authType) )
+        {
+          this.canReauthenticate = true;
+          return true;
+        }
+      }
+      return false;
    }
 
    /**
@@ -230,9 +240,7 @@
       this.authType = authType;
       this.username = username;
       this.password = password;
-      this.canReauthenticate =
-         (Constants.BASIC_METHOD.equals(authType)
-         || Constants.FORM_METHOD.equals(authType));
+
       return changed;
    }
 



More information about the jboss-cvs-commits mailing list