SLING-6052 - Broken impersonation

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1760635 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java b/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java
index e1d3302..b071656 100644
--- a/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java
+++ b/src/main/java/org/apache/sling/auth/core/impl/SlingAuthenticator.java
@@ -1488,6 +1488,8 @@
             char c = value.charAt(i);
             if (c == '"') {
                 builder.append("\\\"");
+            } else if (c == '@') {
+                builder.append(c);
             } else if (c == 127 || (c < 32 && c != '\t')) {
                 throw new IllegalArgumentException(
                     "Cookie value may not contain CTL character");
diff --git a/src/test/java/org/apache/sling/auth/core/impl/SlingAuthenticatorTest.java b/src/test/java/org/apache/sling/auth/core/impl/SlingAuthenticatorTest.java
index d6bb02d..8da1fe6 100644
--- a/src/test/java/org/apache/sling/auth/core/impl/SlingAuthenticatorTest.java
+++ b/src/test/java/org/apache/sling/auth/core/impl/SlingAuthenticatorTest.java
@@ -45,7 +45,7 @@
         checkQuote("\"", "\"\\\"\"");
         checkQuote("simplevalue", "\"simplevalue\"");
         checkQuote("simple value", "\"simple+value\"");
-        checkQuote("email@address.com", "\"email%40address.com\"");
+        checkQuote("email@address.com", "\"email@address.com\"");
 
         checkQuote("string\ttab", "\"string%09tab\"");
         checkQuote("test中文", "\"test%E4%B8%AD%E6%96%87\"");