You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/10/31 17:09:46 UTC

svn commit: r1767332 - in /qpid/java/trunk/broker-core/src: main/java/org/apache/qpid/server/model/preferences/GenericPrincipal.java test/java/org/apache/qpid/server/model/preferences/GenericPrincipalTest.java

Author: kwall
Date: Mon Oct 31 17:09:46 2016
New Revision: 1767332

URL: http://svn.apache.org/viewvc?rev=1767332&view=rev
Log:
QPID-7352: [Java Broker] Make parsing of GenericPrincipal more lenient and allow dashes in originType

Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/preferences/GenericPrincipal.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/preferences/GenericPrincipalTest.java

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/preferences/GenericPrincipal.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/preferences/GenericPrincipal.java?rev=1767332&r1=1767331&r2=1767332&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/preferences/GenericPrincipal.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/preferences/GenericPrincipal.java Mon Oct 31 17:09:46 2016
@@ -33,7 +33,7 @@ import org.apache.qpid.server.security.Q
 
 public class GenericPrincipal implements Principal
 {
-    private static final Pattern PATTERN = Pattern.compile("([a-zA-Z_0-9.%~-]+)@(\\w*)\\('([a-zA-Z_0-9.%~-]*)'\\)");
+    private static final Pattern PATTERN = Pattern.compile("([a-zA-Z_0-9.%~-]+)@([^('@]*)\\('([a-zA-Z_0-9.%~-]*)'\\)");
     public static final String UTF8 = StandardCharsets.UTF_8.name();
 
     private final String _name;

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/preferences/GenericPrincipalTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/preferences/GenericPrincipalTest.java?rev=1767332&r1=1767331&r2=1767332&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/preferences/GenericPrincipalTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/preferences/GenericPrincipalTest.java Mon Oct 31 17:09:46 2016
@@ -61,6 +61,17 @@ public class GenericPrincipalTest extend
         }
     }
 
+    public void testParseWithDash() throws Exception
+    {
+        String username = "user-name";
+        String originType = "origin-type";
+        String originName = "origin-name";
+        GenericPrincipal p = new GenericPrincipal(String.format("%s@%s('%s')", username, originType, originName));
+        assertEquals("unexpected principal name", username, p.getName());
+        assertEquals("unexpected origin type", originType, p.getOriginType());
+        assertEquals("unexpected origin name", originName, p.getOriginName());
+    }
+
     public void testRejectQuotes() throws Exception
     {
         final String usernameWithQuote = "_username'withQuote";
@@ -91,6 +102,41 @@ public class GenericPrincipalTest extend
         }
         catch (IllegalArgumentException e)
         {
+            // pass
+        }
+
+    }
+
+    public void testRejectParenthesis() throws Exception
+    {
+        final String usernameWithParenthesis = "username(withParenthesis";
+        final String originTypeWithParenthesis = "authType(withParenthesis";
+        final String originNameWithParenthesis = "authName(withParenthesis";
+        try
+        {
+            new GenericPrincipal(String.format("%s@%s('%s')", usernameWithParenthesis, _originType, _originName));
+            fail("GenericPricinpal should reject _username with parenthesis");
+        }
+        catch (IllegalArgumentException e)
+        {
+            // pass
+        }
+        try
+        {
+            new GenericPrincipal(String.format("%s@%s('%s')", _username, originTypeWithParenthesis, _originName));
+            fail("GenericPricinpal should reject origin type with parenthesis");
+        }
+        catch (IllegalArgumentException e)
+        {
+            // pass
+        }
+        try
+        {
+            new GenericPrincipal(String.format("%s@%s('%s')", _username, _originType, originNameWithParenthesis));
+            fail("GenericPricinpal should reject origin name with parenthesis");
+        }
+        catch (IllegalArgumentException e)
+        {
             // pass
         }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org