From 2642b66cfe0a31c2283be0cc17e9af5195e162a7 Mon Sep 17 00:00:00 2001 From: Jarek Jarcec Cecho Date: Fri, 1 Mar 2013 10:54:59 -0800 Subject: [PATCH] SQOOP-664: Send user name as HTTP header in client to server communication (Abraham Elmahrek via Jarek Jarcec Cecho) --- .../java/org/apache/sqoop/client/request/Request.java | 2 ++ .../apache/sqoop/common/SqoopProtocolConstants.java | 1 + .../java/org/apache/sqoop/server/RequestContext.java | 10 ++++++++++ 3 files changed, 13 insertions(+) diff --git a/client/src/main/java/org/apache/sqoop/client/request/Request.java b/client/src/main/java/org/apache/sqoop/client/request/Request.java index 17205070..befb793c 100644 --- a/client/src/main/java/org/apache/sqoop/client/request/Request.java +++ b/client/src/main/java/org/apache/sqoop/client/request/Request.java @@ -50,6 +50,8 @@ protected Builder getBuilder(String url) { resource.addFilter(serverExceptionFilter); return resource + // Provide name of user executing request. + .header(SqoopProtocolConstants.HEADER_SQOOP_USERNAME, System.getProperty("user.name")) // Sqoop is using JSON for data transfers .accept(MediaType.APPLICATION_JSON_TYPE) // Transfer client locale to return client specific data diff --git a/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java b/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java index 93c786d7..d08c855d 100644 --- a/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java +++ b/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java @@ -18,6 +18,7 @@ package org.apache.sqoop.common; public final class SqoopProtocolConstants { + public static final String HEADER_SQOOP_USERNAME = "sqoop-user-name"; public static final String HEADER_SQOOP_ERROR_CODE = "sqoop-error-code"; diff --git a/server/src/main/java/org/apache/sqoop/server/RequestContext.java b/server/src/main/java/org/apache/sqoop/server/RequestContext.java index c6b6569a..4ed7f58b 100644 --- a/server/src/main/java/org/apache/sqoop/server/RequestContext.java +++ b/server/src/main/java/org/apache/sqoop/server/RequestContext.java @@ -18,6 +18,7 @@ package org.apache.sqoop.server; import org.apache.sqoop.common.SqoopException; +import org.apache.sqoop.common.SqoopProtocolConstants; import org.apache.sqoop.server.common.ServerError; import javax.servlet.http.HttpServletRequest; @@ -99,4 +100,13 @@ public String[] getUrlElements() { public Locale getAcceptLanguageHeader() { return new Locale(request.getHeader("Accept-Language")); } + + /** + * Get username specified by custom username HTTP header. + * + * @return Name of user sending the request + */ + public String getUserName() { + return request.getHeader(SqoopProtocolConstants.HEADER_SQOOP_USERNAME); + } }