[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