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]