Explorar o código

* test/net/sf/acegisecurity/taglibs/authz/AuthorizeTagAttributeTests.java,
src/net/sf/acegisecurity/taglibs/authz/AuthorizeTag.java:
Added three new tests to assert that whitespace is ignored in the
attribute's content.

Francois Beausoleil %!s(int64=21) %!d(string=hai) anos
pai
achega
ea0e6b2577

+ 1 - 1
core/src/main/java/org/acegisecurity/taglibs/authz/AuthorizeTag.java

@@ -124,7 +124,7 @@ public class AuthorizeTag extends TagSupport {
 
         while (tokenizer.hasMoreTokens()) {
             String role = tokenizer.nextToken();
-            requiredAuthorities.add(new GrantedAuthorityImpl(role));
+            requiredAuthorities.add(new GrantedAuthorityImpl(role.trim()));
         }
 
         return requiredAuthorities;

+ 24 - 0
core/src/test/java/org/acegisecurity/taglibs/authz/AuthorizeTagAttributeTests.java

@@ -63,6 +63,30 @@ public class AuthorizeTagAttributeTests extends TestCase {
             Tag.SKIP_BODY, authorizeTag.doStartTag());
     }
 
+    public void testAssertsIfNotGrantedIgnoresWhitespaceInAttribute()
+        throws JspException {
+        authorizeTag.setIfAnyGranted(
+            "\tROLE_SUPERVISOR  \t, \r\n\t ROLE_TELLER ");
+        assertEquals("allows request - principal has ROLE_SUPERVISOR",
+            Tag.EVAL_BODY_INCLUDE, authorizeTag.doStartTag());
+    }
+
+    public void testIfAllGrantedIgnoresWhitespaceInAttribute()
+        throws JspException {
+        authorizeTag.setIfAllGranted(
+            "\nROLE_SUPERVISOR\t,ROLE_RESTRICTED\t\n\r ");
+        assertEquals("allows request - principal has ROLE_RESTRICTED "
+            + "and ROLE_SUPERVISOR", Tag.EVAL_BODY_INCLUDE,
+            authorizeTag.doStartTag());
+    }
+
+    public void testIfNotGrantedIgnoresWhitespaceInAttribute()
+        throws JspException {
+        authorizeTag.setIfNotGranted(" \t  ROLE_TELLER \r");
+        assertEquals("allows request - principal does not have ROLE_TELLER",
+            Tag.EVAL_BODY_INCLUDE, authorizeTag.doStartTag());
+    }
+
     protected void setUp() throws Exception {
         super.setUp();