You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2015/12/12 16:35:52 UTC

svn commit: r1719702 - in /jmeter/trunk: src/protocol/http/org/apache/jmeter/protocol/http/control/AuthManager.java test/src/org/apache/jmeter/protocol/http/control/AuthManagerTest.java test/src/org/apache/jmeter/protocol/http/control/TestAuthManager.java

Author: fschumacher
Date: Sat Dec 12 15:35:52 2015
New Revision: 1719702

URL: http://svn.apache.org/viewvc?rev=1719702&view=rev
Log:
Followup to r1719699

There was already a test case for AuthManager, so use that one.
Correct offset for length of splitted array, so that old auth infos can be read.

Bugzilla Id: 58698


Removed:
    jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/AuthManagerTest.java
Modified:
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/AuthManager.java
    jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestAuthManager.java

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/AuthManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/AuthManager.java?rev=1719702&r1=1719701&r2=1719702&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/AuthManager.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/AuthManager.java Sat Dec 12 15:35:52 2015
@@ -378,26 +378,28 @@ public class AuthManager extends ConfigT
                         continue;
                     }
                     String[] tokens = line.split("\t"); //$NON-NLS-1$
-                    String url = tokens[0];
-                    String user = tokens[1];
-                    String pass = tokens[2];
-                    String domain;
-                    String realm;
-                    if (tokens.length > 2){ // Allow for old format file without the extra columnns
-                        domain = tokens[3];
-                        realm = tokens[4];
-                    } else {
-                        domain = "";
-                        realm = "";
+                    if (tokens.length >= 3) {
+                        String url = tokens[0];
+                        String user = tokens[1];
+                        String pass = tokens[2];
+                        String domain;
+                        String realm;
+                        if (tokens.length > 3){ // Allow for old format file without the extra columnns
+                            domain = tokens[3];
+                            realm = tokens[4];
+                        } else {
+                            domain = "";
+                            realm = "";
+                        }
+                        Mechanism mechanism;
+                        if (tokens.length > 5) { // Allow for old format file without mechanism support
+                            mechanism = Mechanism.valueOf(tokens[5]);
+                        } else {
+                            mechanism = Mechanism.BASIC_DIGEST;
+                        }
+                        Authorization auth = new Authorization(url, user, pass, domain, realm, mechanism);
+                        getAuthObjects().addItem(auth);
                     }
-                    Mechanism mechanism;
-                    if (tokens.length > 4) { // Allow for old format file without mechanism support
-                        mechanism = Mechanism.valueOf(tokens[5]);
-                    } else {
-                        mechanism = Mechanism.BASIC_DIGEST;
-                    }
-                    Authorization auth = new Authorization(url, user, pass, domain, realm, mechanism);
-                    getAuthObjects().addItem(auth);
                 } catch (NoSuchElementException e) {
                     log.error("Error parsing auth line: '" + line + "'", e);
                     ok = false;

Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestAuthManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestAuthManager.java?rev=1719702&r1=1719701&r2=1719702&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestAuthManager.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestAuthManager.java Sat Dec 12 15:35:52 2015
@@ -18,7 +18,10 @@
 
 package org.apache.jmeter.protocol.http.control;
 
+import java.io.File;
+import java.io.IOException;
 import java.net.URL;
+import java.nio.file.Files;
 
 import org.apache.jmeter.junit.JMeterTestCase;
 import org.apache.jmeter.testelement.property.CollectionProperty;
@@ -77,4 +80,34 @@ public class TestAuthManager extends JMe
             assertEquals("lmn8443", at.getUser());
             assertEquals("pass", at.getPass());
         }
+
+        public void testAddFileWithoutDomainAndRealmWithMechanism() throws IOException {
+            File authFile = File.createTempFile("auth", ".txt");
+            Files.write(authFile.toPath(), "http://example.com\tuser\tpassword\t\t\tBASIC_DIGEST".getBytes());
+            AuthManager manager = new AuthManager();
+            manager.addFile(authFile.getAbsolutePath());
+            Authorization authForURL = manager.getAuthForURL(new URL("http://example.com"));
+            assertEquals("password", authForURL.getPass());
+        }
+
+        public void testAddFileWithDomainAndRealmAndDefaultMechanism() throws IOException {
+            File authFile = File.createTempFile("auth", ".txt");
+            Files.write(authFile.toPath(), "http://example.com\tuser\tpassword\tdomain\tEXAMPLE.COM\tBASIC_DIGEST".getBytes());
+            AuthManager manager = new AuthManager();
+            manager.addFile(authFile.getAbsolutePath());
+            Authorization authForURL = manager.getAuthForURL(new URL("http://example.com"));
+            assertEquals("password", authForURL.getPass());
+            assertEquals("domain", authForURL.getDomain());
+        }
+
+        public void testAddFileWithDomainAndRealmAndMechanism() throws IOException {
+            File authFile = File.createTempFile("auth", ".txt");
+            Files.write(authFile.toPath(), "http://example.com\tuser\tpassword\tdomain\tEXAMPLE.COM\tKERBEROS".getBytes());
+            AuthManager manager = new AuthManager();
+            manager.addFile(authFile.getAbsolutePath());
+            Authorization authForURL = manager.getAuthForURL(new URL("http://example.com"));
+            assertEquals("password", authForURL.getPass());
+            assertEquals("domain", authForURL.getDomain());
+            assertEquals(AuthManager.Mechanism.KERBEROS, authForURL.getMechanism());
+        }
 }