[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