Author: markt Date: Sun Jan 6 14:53:15 2008 New Revision: 609456 URL: http://svn.apache.org/viewvc?rev=609456&view=rev Log: Fix bug 44084. JASSRealm is broken for application provided Principals. Patch provided by Noah Levitt.
Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/realm/JAASRealm.java tomcat/container/tc5.5.x/webapps/docs/changelog.xml tomcat/current/tc5.5.x/STATUS.txt Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/realm/JAASRealm.java URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/realm/JAASRealm.java?rev=609456&r1=609455&r2=609456&view=diff ============================================================================== --- tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/realm/JAASRealm.java (original) +++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/realm/JAASRealm.java Sun Jan 6 14:53:15 2008 @@ -250,7 +250,6 @@ */ public void setRoleClassNames(String roleClassNames) { this.roleClassNames = roleClassNames; - parseClassNames(roleClassNames, roleClasses); } /** @@ -264,12 +263,17 @@ protected void parseClassNames(String classNamesString, List classNamesList) { classNamesList.clear(); if (classNamesString == null) return; - + + ClassLoader loader = this.getClass().getClassLoader(); + if (isUseContextClassLoader()) + loader = Thread.currentThread().getContextClassLoader(); + String[] classNames = classNamesString.split("[ ]*,[ ]*"); for (int i=0; i<classNames.length; i++) { if (classNames[i].length()==0) continue; try { - Class principalClass = Class.forName(classNames[i]); + Class principalClass = Class.forName(classNames[i], false, + loader); if (Principal.class.isAssignableFrom(principalClass)) { classNamesList.add(classNames[i]); } else { @@ -302,7 +306,6 @@ */ public void setUserClassNames(String userClassNames) { this.userClassNames = userClassNames; - parseClassNames(userClassNames, userClasses); } @@ -335,9 +338,10 @@ // What if the LoginModule is in the container class loader ? ClassLoader ocl = null; - if (isUseContextClassLoader()) { - ocl=Thread.currentThread().getContextClassLoader(); - Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); + if (!isUseContextClassLoader()) { + ocl=Thread.currentThread().getContextClassLoader(); + Thread.currentThread().setContextClassLoader( + this.getClass().getClassLoader()); } try { @@ -348,7 +352,7 @@ log.error(sm.getString("jaasRealm.unexpectedError"), e); return (null); } finally { - if( isUseContextClassLoader()) { + if(!isUseContextClassLoader()) { Thread.currentThread().setContextClassLoader(ocl); } } @@ -547,6 +551,10 @@ // Perform normal superclass initialization super.start(); + // These need to be called after loading configuration, in case + // useContextClassLoader appears after them in xml config + parseClassNames(userClassNames, userClasses); + parseClassNames(roleClassNames, roleClasses); } Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?rev=609456&r1=609455&r2=609456&view=diff ============================================================================== --- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original) +++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Sun Jan 6 14:53:15 2008 @@ -112,6 +112,10 @@ <bug>44041</bug>: Fix duplicate class definition error under load. (markt) </fix> + <fix> + <bug>44084</bug>: JASSRealm is broken for application provided + Principals. Patch provided by Noah Levitt. (markt) + </fix> </changelog> </subsection> <subsection name="Jasper" > Modified: tomcat/current/tc5.5.x/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/current/tc5.5.x/STATUS.txt?rev=609456&r1=609455&r2=609456&view=diff ============================================================================== --- tomcat/current/tc5.5.x/STATUS.txt (original) +++ tomcat/current/tc5.5.x/STATUS.txt Sun Jan 6 14:53:15 2008 @@ -47,12 +47,6 @@ -1: 0: fhanik, this needs to be reworked completely, so I'm neutral -* Fix http://issues.apache.org/bugzilla/show_bug.cgi?id=44084 - JASSRealm is broken for application provided Principals - http://svn.apache.org/viewvc?rev=606621&view=rev - +1: markt, pero,fhanik - -1: - * Fix http://issues.apache.org/bugzilla/show_bug.cgi?id=43914 Location headers must be encoded. Patch provided by Ivan Todoroski. http://svn.apache.org/viewvc?rev=606952&view=rev --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]