Author: markt
Date: Mon May 12 12:05:01 2014
New Revision: 1593939
URL: http://svn.apache.org/r1593939
Log:
Fix regression introduced in r1239520 that broke loading of users from
tomcat-users.xml when using the JASSMemoryLoginModule
Modified:
tomcat/trunk/java/org/apache/catalina/realm/JAASCallbackHandler.java
tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/realm/JAASCallbackHandler.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/JAASCallbackHandler.java?rev=1593939&r1=1593938&r2=1593939&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/JAASCallbackHandler.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/realm/JAASCallbackHandler.java Mon
May 12 12:05:01 2014
@@ -215,6 +215,8 @@ public class JAASCallbackHandler impleme
cb.setText(md5a2);
} else if (cb.getPrompt().equals("authMethod")) {
cb.setText(authMethod);
+ } else if (cb.getPrompt().equals("catalinaBase")) {
+
cb.setText(realm.getContainer().getCatalinaBase().getAbsolutePath());
} else {
throw new UnsupportedCallbackException(callbacks[i]);
}
Modified: tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java?rev=1593939&r1=1593938&r2=1593939&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java Mon
May 12 12:05:01 2014
@@ -338,8 +338,15 @@ public class JAASMemoryLoginModule exten
// Validate the existence of our configuration file
File file = new File(pathname);
- if (!file.isAbsolute())
- file = new File(getContainer().getCatalinaBase(), pathname);
+ if (!file.isAbsolute()) {
+ String catalinaBase = getCatalinaBase();
+ if (catalinaBase == null) {
+ log.warn("Unable to determine Catalina base to load file " +
pathname);
+ return;
+ } else {
+ file = new File(catalinaBase, pathname);
+ }
+ }
if (!file.exists() || !file.canRead()) {
log.warn("Cannot load configuration file " +
file.getAbsolutePath());
return;
@@ -359,6 +366,29 @@ public class JAASMemoryLoginModule exten
} finally {
digester.reset();
}
+ }
+
+ private String getCatalinaBase() {
+ // Have to get this via a callback as that is the only link we have
back
+ // to the defining Realm. Can't use the system property as that may not
+ // be set/correct in an embedded scenario
+
+ if (callbackHandler == null) {
+ return null;
+ }
+
+ Callback callbacks[] = new Callback[1];
+ callbacks[0] = new TextInputCallback("catalinaBase");
+
+ String result = null;
+
+ try {
+ callbackHandler.handle(callbacks);
+ result = ((TextInputCallback) callbacks[0]).getText();
+ } catch (IOException | UnsupportedCallbackException e) {
+ return null;
+ }
+ return result;
}
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1593939&r1=1593938&r2=1593939&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon May 12 12:05:01 2014
@@ -182,6 +182,11 @@
trigger threads renewal for failed contexts. Do not ignore
<code>threadRenewalDelay</code> setting. Improve documentation.
(kkolinko)
</fix>
+ <fix>
+ Fix regression introduced in <rev>1239520</rev> that broke loading of
+ users from <code>tomcat-users.xml</code> when using the
+ <code>JASSMemoryLoginModule</code>. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]