5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-08 02:50:38 +08:00

SQOOP-1960: Sqoop2: Share auth token across ResourceRequest in SqoopClient

(Richard Zhou via Abraham Elmahrek)
This commit is contained in:
Abraham Elmahrek 2015-01-08 23:01:23 -08:00
parent 471e534ef6
commit 8d25d1fedf
8 changed files with 77 additions and 6 deletions

View File

@ -17,6 +17,7 @@
*/
package org.apache.sqoop.client.request;
import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
import org.apache.sqoop.json.ConnectorBean;
import org.apache.sqoop.json.ConnectorsBean;
import org.apache.sqoop.json.JSONUtils;
@ -30,6 +31,14 @@
public class ConnectorResourceRequest extends ResourceRequest {
public static final String RESOURCE = "v1/connector/";
public ConnectorResourceRequest(){
super();
}
public ConnectorResourceRequest(DelegationTokenAuthenticatedURL.Token token){
super(token);
}
public ConnectorBean read(String serverUrl, Long cid) {
String response;
if (cid == null) {

View File

@ -17,6 +17,7 @@
*/
package org.apache.sqoop.client.request;
import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
import org.apache.sqoop.json.DriverBean;
import org.apache.sqoop.json.JSONUtils;
import org.json.simple.JSONObject;
@ -28,6 +29,14 @@ public class DriverResourceRequest extends ResourceRequest {
public static final String RESOURCE = "v1/driver/";
public DriverResourceRequest(){
super();
}
public DriverResourceRequest(DelegationTokenAuthenticatedURL.Token token){
super(token);
}
public DriverBean read(String serverUrl) {
String response = null;
response = super.get(serverUrl + RESOURCE);

View File

@ -17,6 +17,7 @@
*/
package org.apache.sqoop.client.request;
import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
import org.apache.sqoop.json.JSONUtils;
import org.apache.sqoop.json.JobBean;
import org.apache.sqoop.json.JobsBean;
@ -39,6 +40,14 @@ public class JobResourceRequest extends ResourceRequest {
private static final String STOP = "/stop";
private static final String STATUS = "/status";
public JobResourceRequest(){
super();
}
public JobResourceRequest(DelegationTokenAuthenticatedURL.Token token){
super(token);
}
public JobBean read(String serverUrl, Long jobId) {
String response;
if (jobId == null) {

View File

@ -17,6 +17,7 @@
*/
package org.apache.sqoop.client.request;
import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
import org.apache.sqoop.json.JSONUtils;
import org.apache.sqoop.json.LinkBean;
import org.apache.sqoop.json.LinksBean;
@ -35,6 +36,14 @@ public class LinkResourceRequest extends ResourceRequest {
private static final String ENABLE = "/enable";
private static final String DISABLE = "/disable";
public LinkResourceRequest(){
super();
}
public LinkResourceRequest(DelegationTokenAuthenticatedURL.Token token){
super(token);
}
public LinkBean read(String serverUrl, Long linkId) {
String response;
if (linkId == null) {

View File

@ -51,6 +51,14 @@ public class ResourceRequest {
private DelegationTokenAuthenticatedURL.Token authToken;
private String strURL;
public ResourceRequest() {
this.authToken = new DelegationTokenAuthenticatedURL.Token();
}
public ResourceRequest(DelegationTokenAuthenticatedURL.Token token) {
this.authToken = token == null ? new DelegationTokenAuthenticatedURL.Token() : token;
}
protected String doHttpRequest(String strURL, String method) {
return doHttpRequest(strURL, method, "");
}
@ -59,7 +67,6 @@ protected String doHttpRequest(String strURL, String method, String data) {
DataOutputStream wr = null;
BufferedReader reader = null;
try {
this.authToken = new DelegationTokenAuthenticatedURL.Token();
this.strURL = strURL;
URL url = new URL(strURL);
HttpURLConnection conn = new DelegationTokenAuthenticatedURL().openConnection(url, authToken);
@ -212,4 +219,8 @@ private Text getDelegationTokenService() throws IOException {
Text dtService = SecurityUtil.buildTokenService(addr);
return dtService;
}
public DelegationTokenAuthenticatedURL.Token getAuthToken() {
return authToken;
}
}

View File

@ -17,6 +17,7 @@
*/
package org.apache.sqoop.client.request;
import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
import org.apache.sqoop.json.ConnectorBean;
import org.apache.sqoop.json.DriverBean;
import org.apache.sqoop.json.JobBean;
@ -39,6 +40,11 @@ public class SqoopResourceRequests {
private LinkResourceRequest linkRequest;
private JobResourceRequest jobRequest;
private SubmissionResourceRequest submissionRequest;
private DelegationTokenAuthenticatedURL.Token authToken;
public SqoopResourceRequests(){
authToken = new DelegationTokenAuthenticatedURL.Token();
}
public void setServerUrl(String serverUrl) {
this.serverUrl = serverUrl;
@ -46,7 +52,7 @@ public void setServerUrl(String serverUrl) {
public DriverResourceRequest getDriverResourceRequest() {
if (driverRequest == null) {
driverRequest = new DriverResourceRequest();
driverRequest = new DriverResourceRequest(authToken);
}
return driverRequest;
@ -54,7 +60,7 @@ public DriverResourceRequest getDriverResourceRequest() {
public ConnectorResourceRequest getConnectorResourceRequest() {
if (connectorRequest == null) {
connectorRequest = new ConnectorResourceRequest();
connectorRequest = new ConnectorResourceRequest(authToken);
}
return connectorRequest;
@ -62,7 +68,7 @@ public ConnectorResourceRequest getConnectorResourceRequest() {
public LinkResourceRequest getLinkResourceRequest() {
if (linkRequest == null) {
linkRequest = new LinkResourceRequest();
linkRequest = new LinkResourceRequest(authToken);
}
return linkRequest;
@ -70,7 +76,7 @@ public LinkResourceRequest getLinkResourceRequest() {
public JobResourceRequest getJobResourceRequest() {
if (jobRequest == null) {
jobRequest = new JobResourceRequest();
jobRequest = new JobResourceRequest(authToken);
}
return jobRequest;
@ -78,7 +84,7 @@ public JobResourceRequest getJobResourceRequest() {
public SubmissionResourceRequest getSubmissionResourceRequest() {
if (submissionRequest == null) {
submissionRequest = new SubmissionResourceRequest();
submissionRequest = new SubmissionResourceRequest(authToken);
}
return submissionRequest;

View File

@ -17,6 +17,7 @@
*/
package org.apache.sqoop.client.request;
import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
import org.apache.sqoop.json.JSONUtils;
import org.apache.sqoop.json.SubmissionsBean;
import org.json.simple.JSONObject;
@ -29,6 +30,14 @@ public class SubmissionResourceRequest extends ResourceRequest {
public static final String RESOURCE = "v1/submissions/";
public SubmissionResourceRequest(){
super();
}
public SubmissionResourceRequest(DelegationTokenAuthenticatedURL.Token token){
super(token);
}
public SubmissionsBean read(String serverUrl, Long jid) {
String response;
if (jid == null) {

View File

@ -17,12 +17,21 @@
*/
package org.apache.sqoop.client.request;
import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
import org.apache.sqoop.json.JSONUtils;
import org.apache.sqoop.json.VersionBean;
import org.json.simple.JSONObject;
public class VersionResourceRequest extends ResourceRequest
{
public VersionResourceRequest(){
super();
}
public VersionResourceRequest(DelegationTokenAuthenticatedURL.Token token){
super(token);
}
public VersionBean read(String serverUrl) {
String response = super.get(serverUrl + "version");
JSONObject jsonObject = JSONUtils.parse(response);