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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to