[jboss-cvs] Picketbox SVN: r225 - trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 26 14:23:11 EDT 2011


Author: mmoyses
Date: 2011-05-26 14:23:11 -0400 (Thu, 26 May 2011)
New Revision: 225

Modified:
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapExtLoginModule.java
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapLoginModule.java
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/SecurityActions.java
Log:
SECURITY-597: workaround for InitialDirContext in AS7

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapExtLoginModule.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapExtLoginModule.java	2011-05-23 14:57:10 UTC (rev 224)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapExtLoginModule.java	2011-05-26 18:23:11 UTC (rev 225)
@@ -421,8 +421,11 @@
 
       // Get the admin context for searching
       InitialLdapContext ctx = null;
+      ClassLoader currentTCCL = SecurityActions.getContextClassLoader();
       try
       {
+         if (currentTCCL != null)
+            SecurityActions.setContextClassLoader(null);
          ctx = constructInitialLdapContext(bindDN, bindCredential);
          // Validate the user by binding against the userDN
          String userDN = bindDNAuthentication(ctx, username, credential, baseDN, baseFilter);
@@ -438,6 +441,8 @@
       {
          if (ctx != null)
             ctx.close();
+         if (currentTCCL != null)
+            SecurityActions.setContextClassLoader(currentTCCL);
       }
       return true;
    }

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapLoginModule.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapLoginModule.java	2011-05-23 14:57:10 UTC (rev 224)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/LdapLoginModule.java	2011-05-26 18:23:11 UTC (rev 225)
@@ -321,8 +321,11 @@
       }
 
       InitialLdapContext ctx = null;
+      ClassLoader currentTCCL = SecurityActions.getContextClassLoader();
       try
       {
+         if (currentTCCL != null)
+            SecurityActions.setContextClassLoader(null);
          ctx = new InitialLdapContext(env, null);
          if (trace)
             log.trace("Logged into LDAP server, " + ctx);
@@ -502,6 +505,8 @@
          // Close the context to release the connection
          if (ctx != null)
             ctx.close();
+         if (currentTCCL != null)
+            SecurityActions.setContextClassLoader(currentTCCL);
       }
    }
 

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/SecurityActions.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/SecurityActions.java	2011-05-23 14:57:10 UTC (rev 224)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/auth/spi/SecurityActions.java	2011-05-26 18:23:11 UTC (rev 225)
@@ -50,6 +50,18 @@
        });  
    }
    
+   static Void setContextClassLoader(final ClassLoader cl)
+   {
+      return AccessController.doPrivileged(new PrivilegedAction<Void>()
+      {
+         public Void run()
+         {
+            Thread.currentThread().setContextClassLoader(cl);
+            return null;
+         }
+      });
+   }
+   
    static URL findResource(final URLClassLoader cl, final String name)
    {
       return AccessController.doPrivileged(new PrivilegedAction<URL>()



More information about the jboss-cvs-commits mailing list