Issue #2739 - AuthenticationProtocolHandler Multiple Challenge Pattern
process the param value with QuotedCSV.unquote() Signed-off-by: lachan-roberts <lachlan@webtide.com>
This commit is contained in:
parent
96f5773e4f
commit
f735c0427f
|
@ -49,7 +49,7 @@ public abstract class AuthenticationProtocolHandler implements ProtocolHandler
|
||||||
private final int maxContentLength;
|
private final int maxContentLength;
|
||||||
private final ResponseNotifier notifier;
|
private final ResponseNotifier notifier;
|
||||||
|
|
||||||
private static final Pattern CHALLENGE_PATTERN = Pattern.compile("(?<schemeOnly>[!#$%&'*+\\-.^_`|~0-9A-Za-z]+)|(?:(?<scheme>[!#$%&'*+\\-.^_`|~0-9A-Za-z]+)\\s+)?(?:(?<paramName>[!#$%&'*+\\-.^_`|~0-9A-Za-z]+)\\s*=\\s*(?:\"(?<paramValueQuoted>.*)\"|(?<paramValueUnquoted>[!#$%&'*+\\-.^_`|~0-9A-Za-z]+))|(?<token68>[a-zA-Z0-9\\-._~+\\/]+=*))");
|
private static final Pattern CHALLENGE_PATTERN = Pattern.compile("(?<schemeOnly>[!#$%&'*+\\-.^_`|~0-9A-Za-z]+)|(?:(?<scheme>[!#$%&'*+\\-.^_`|~0-9A-Za-z]+)\\s+)?(?:(?<token68>[a-zA-Z0-9\\-._~+\\/]+=*)|(?<paramName>[!#$%&'*+\\-.^_`|~0-9A-Za-z]+)\\s*=\\s*(?:(?<paramValue>.*)))");
|
||||||
|
|
||||||
protected AuthenticationProtocolHandler(HttpClient client, int maxContentLength)
|
protected AuthenticationProtocolHandler(HttpClient client, int maxContentLength)
|
||||||
{
|
{
|
||||||
|
@ -120,7 +120,7 @@ public abstract class AuthenticationProtocolHandler implements ProtocolHandler
|
||||||
|
|
||||||
if (m.group("paramName") != null)
|
if (m.group("paramName") != null)
|
||||||
{
|
{
|
||||||
String paramVal = (m.group("paramValueQuoted") != null) ? m.group("paramValueQuoted") : m.group("paramValueUnquoted");
|
String paramVal = QuotedCSV.unquote(m.group("paramValue"));
|
||||||
authParams.put(m.group("paramName"), paramVal);
|
authParams.put(m.group("paramName"), paramVal);
|
||||||
}
|
}
|
||||||
else if (m.group("token68") != null)
|
else if (m.group("token68") != null)
|
||||||
|
|
|
@ -675,7 +675,7 @@ public class HttpClientAuthenticationTest extends AbstractHttpClientServerTest
|
||||||
Assert.assertTrue(headerInfos.get(0).getType().equalsIgnoreCase("Newauth"));
|
Assert.assertTrue(headerInfos.get(0).getType().equalsIgnoreCase("Newauth"));
|
||||||
Assert.assertTrue(headerInfos.get(0).getParameter("realm").equals("apps"));
|
Assert.assertTrue(headerInfos.get(0).getParameter("realm").equals("apps"));
|
||||||
Assert.assertTrue(headerInfos.get(0).getParameter("type").equals("1"));
|
Assert.assertTrue(headerInfos.get(0).getParameter("type").equals("1"));
|
||||||
Assert.assertThat(headerInfos.get(0).getParameter("title"), Matchers.equalTo("Login to \\\"apps\\\""));
|
Assert.assertThat(headerInfos.get(0).getParameter("title"), Matchers.equalTo("Login to \"apps\""));
|
||||||
Assert.assertTrue(headerInfos.get(1).getType().equalsIgnoreCase("Basic"));
|
Assert.assertTrue(headerInfos.get(1).getType().equalsIgnoreCase("Basic"));
|
||||||
Assert.assertTrue(headerInfos.get(1).getParameter("realm").equals("simple"));
|
Assert.assertTrue(headerInfos.get(1).getParameter("realm").equals("simple"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue