You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Alejandro Abdelnur (JIRA)" <ji...@apache.org> on 2014/06/20 00:17:25 UTC
[jira] [Comment Edited] (HADOOP-10710) hadoop.auth cookie is not
properly constructed according to RFC2109
[ https://issues.apache.org/jira/browse/HADOOP-10710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14038000#comment-14038000 ]
Alejandro Abdelnur edited comment on HADOOP-10710 at 6/19/14 10:17 PM:
-----------------------------------------------------------------------
[~jyu@cloudera.com], do setVersion(1), that would force the toString() to print all attributes:
{code}
public static void createAuthCookie(HttpServletResponse resp, String token,
String domain, String path, long expires,
boolean isSecure) {
if (token != null) {
HttpCookie cookie = new HttpCookie(AuthenticatedURL.AUTH_COOKIE, token);
cookie.setVersion(1);
cookie.setPath(path);
cookie.setMaxAge(expires);
cookie.setDomain(domain);
cookie.setSecure(isSecure);
cookie.setHttpOnly(true);
resp.addHeader("Set-Cookie", cookie.toString());
}
}
{code}
was (Author: tucu00):
[~jyu@cloudera.com], do setVersion(1), that would force the toString() to print all attributes:
{code{
public static void createAuthCookie(HttpServletResponse resp, String token,
String domain, String path, long expires,
boolean isSecure) {
if (token != null) {
HttpCookie cookie = new HttpCookie(AuthenticatedURL.AUTH_COOKIE, token);
cookie.setVersion(1);
cookie.setPath(path);
cookie.setMaxAge(expires);
cookie.setDomain(domain);
cookie.setSecure(isSecure);
cookie.setHttpOnly(true);
resp.addHeader("Set-Cookie", cookie.toString());
}
}
{code}
> hadoop.auth cookie is not properly constructed according to RFC2109
> -------------------------------------------------------------------
>
> Key: HADOOP-10710
> URL: https://issues.apache.org/jira/browse/HADOOP-10710
> Project: Hadoop Common
> Issue Type: Bug
> Components: security
> Affects Versions: 2.4.0
> Reporter: Alejandro Abdelnur
> Assignee: Juan Yu
> Attachments: HADOOP-10710.001.patch, HADOOP-10710.002.patch
>
>
> It seems that HADOOP-10379 introduced a bug on how hadoop.auth cookies are being constructed.
> Before HADOOP-10379, cookies were constructed using Servlet's {{Cookie}} class and corresponding {{HttpServletResponse}} methods. This was taking care of setting attributes like 'Version=1' and double-quoting the cookie value if necessary.
> HADOOP-10379 changed the Cookie creation to use a {{StringBuillder}} and setting values and attributes by hand. This is not taking care of setting required attributes like Version and escaping the cookie value.
> While this is not breaking HadoopAuth {{AuthenticatedURL}} access, it is breaking access done using {{HtttpClient}}. I.e. Solr uses HttpClient and its access is broken since this change.
> It seems that HADOOP-10379 main objective was to set the 'secure' attribute. Note this can be done using the {{Cookie}} API.
> We should revert the cookie creation logic to use the {{Cookie}} API and take care of the security flag via {{setSecure(boolean)}}.
--
This message was sent by Atlassian JIRA
(v6.2#6252)