Revert "Adding demo client"

This reverts commit 77a7925c32be8e0882ded8d3fc254af84e533af3.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d2c5e4bf
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d2c5e4bf
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d2c5e4bf

Branch: refs/heads/master
Commit: d2c5e4bf748e4d14f5b141c6a74206b5b9162aa9
Parents: d918570
Author: Jimmy Xiang <[email protected]>
Authored: Wed Dec 17 16:11:47 2014 -0800
Committer: Jimmy Xiang <[email protected]>
Committed: Wed Dec 17 16:11:47 2014 -0800

----------------------------------------------------------------------
 .../hadoop/hbase/thrift/HttpDoAsClient.java     | 290 -------------------
 1 file changed, 290 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/d2c5e4bf/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
----------------------------------------------------------------------
diff --git 
a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
 
b/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
deleted file mode 100644
index 9da79ac..0000000
--- 
a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hbase.thrift;
-
-import sun.misc.BASE64Encoder;
-
-import java.io.UnsupportedEncodingException;
-import java.nio.ByteBuffer;
-import java.nio.charset.CharacterCodingException;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.security.PrivilegedExceptionAction;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.LoginContext;
-
-import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;
-import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;
-import org.apache.hadoop.hbase.thrift.generated.Hbase;
-import org.apache.hadoop.hbase.thrift.generated.TCell;
-import org.apache.hadoop.hbase.thrift.generated.TRowResult;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.transport.THttpClient;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-import org.ietf.jgss.GSSContext;
-import org.ietf.jgss.GSSCredential;
-import org.ietf.jgss.GSSException;
-import org.ietf.jgss.GSSManager;
-import org.ietf.jgss.GSSName;
-import org.ietf.jgss.Oid;
-
-/**
- * See the instructions under hbase-examples/README.txt
- */
-public class HttpDoAsClient {
-
-  static protected int port;
-  static protected String host;
-  CharsetDecoder decoder = null;
-  private static boolean secure = false;
-
-  public static void main(String[] args) throws Exception {
-
-    if (args.length < 2 || args.length > 3) {
-
-      System.out.println("Invalid arguments!");
-      System.out.println("Usage: DemoClient host port [secure=false]");
-
-      System.exit(-1);
-    }
-
-    port = Integer.parseInt(args[1]);
-    host = args[0];
-    if (args.length > 2) {
-      secure = Boolean.parseBoolean(args[2]);
-    }
-
-    final HttpDoAsClient client = new HttpDoAsClient();
-    Subject.doAs(getSubject(),
-        new PrivilegedExceptionAction<Void>() {
-          @Override
-          public Void run() throws Exception {
-            client.run();
-            return null;
-          }
-        });
-  }
-
-  HttpDoAsClient() {
-    decoder = Charset.forName("UTF-8").newDecoder();
-  }
-
-  // Helper to translate byte[]'s to UTF8 strings
-  private String utf8(byte[] buf) {
-    try {
-      return decoder.decode(ByteBuffer.wrap(buf)).toString();
-    } catch (CharacterCodingException e) {
-      return "[INVALID UTF-8]";
-    }
-  }
-
-  // Helper to translate strings to UTF8 bytes
-  private byte[] bytes(String s) {
-    try {
-      return s.getBytes("UTF-8");
-    } catch (UnsupportedEncodingException e) {
-      e.printStackTrace();
-      return null;
-    }
-  }
-
-  private void run() throws Exception {
-    TTransport transport = new TSocket(host, port);
-
-    transport.open();
-    String url = "http://"; + host + ":" + port;
-    THttpClient httpClient = new THttpClient(url);
-    httpClient.open();
-    TProtocol protocol = new TBinaryProtocol(httpClient);
-    Hbase.Client client = new Hbase.Client(protocol);
-
-    byte[] t = bytes("demo_table");
-
-    //
-    // Scan all tables, look for the demo table and delete it.
-    //
-    System.out.println("scanning tables...");
-    for (ByteBuffer name : refresh(client, httpClient).getTableNames()) {
-      System.out.println("  found: " + utf8(name.array()));
-      if (utf8(name.array()).equals(utf8(t))) {
-        if (client.isTableEnabled(name)) {
-          System.out.println("    disabling table: " + utf8(name.array()));
-          refresh(client, httpClient).disableTable(name);
-        }
-        System.out.println("    deleting table: " + utf8(name.array()));
-        refresh(client, httpClient).deleteTable(name);
-      }
-    }
-
-
-
-    //
-    // Create the demo table with two column families, entry: and unused:
-    //
-    ArrayList<ColumnDescriptor> columns = new ArrayList<ColumnDescriptor>();
-    ColumnDescriptor col;
-    col = new ColumnDescriptor();
-    col.name = ByteBuffer.wrap(bytes("entry:"));
-    col.timeToLive = Integer.MAX_VALUE;
-    col.maxVersions = 10;
-    columns.add(col);
-    col = new ColumnDescriptor();
-    col.name = ByteBuffer.wrap(bytes("unused:"));
-    col.timeToLive = Integer.MAX_VALUE;
-    columns.add(col);
-
-    System.out.println("creating table: " + utf8(t));
-    try {
-
-      refresh(client, httpClient).createTable(ByteBuffer.wrap(t), columns);
-    } catch (AlreadyExists ae) {
-      System.out.println("WARN: " + ae.message);
-    }
-
-    System.out.println("column families in " + utf8(t) + ": ");
-    Map<ByteBuffer, ColumnDescriptor> columnMap = refresh(client, httpClient)
-        .getColumnDescriptors(ByteBuffer.wrap(t));
-    for (ColumnDescriptor col2 : columnMap.values()) {
-      System.out.println("  column: " + utf8(col2.name.array()) + ", maxVer: " 
+ Integer.toString(col2.maxVersions));
-    }
-
-    transport.close();
-    httpClient.close();
-  }
-
-  private Hbase.Client refresh(Hbase.Client client, THttpClient httpClient) {
-    if(secure) {
-      httpClient.setCustomHeader("doAs", "hbase");
-      try {
-        httpClient.setCustomHeader("Authorization", generateTicket());
-      } catch (GSSException e) {
-        e.printStackTrace();
-      }
-    }
-    return client;
-  }
-
-  private String generateTicket() throws GSSException {
-    final GSSManager manager = GSSManager.getInstance();
-    // Oid for kerberos principal name
-    Oid krb5PrincipalOid = new Oid("1.2.840.113554.1.2.2.1");
-    Oid KERB_V5_OID = new Oid("1.2.840.113554.1.2.2");
-    final GSSName clientName = 
manager.createName("hbase/node-1.internal@INTERNAL",
-        krb5PrincipalOid);
-    final GSSCredential clientCred = manager.createCredential(clientName,
-        8 * 3600,
-        KERB_V5_OID,
-        GSSCredential.INITIATE_ONLY);
-
-    final GSSName serverName = 
manager.createName("hbase/node-1.internal@INTERNAL", krb5PrincipalOid);
-
-    final GSSContext context = manager.createContext(serverName,
-        KERB_V5_OID,
-        clientCred,
-        GSSContext.DEFAULT_LIFETIME);
-    context.requestMutualAuth(true);
-    context.requestConf(false);
-    context.requestInteg(true);
-
-    final byte[] outToken = context.initSecContext(new byte[0], 0, 0);
-    StringBuffer outputBuffer = new StringBuffer();
-    outputBuffer.append("Negotiate ");
-    outputBuffer.append(new BASE64Encoder().encode(outToken).replace("\n", 
""));
-    System.out.print("Ticket is: " + outputBuffer);
-    return outputBuffer.toString();
-  }
-
-  private void printVersions(ByteBuffer row, List<TCell> versions) {
-    StringBuilder rowStr = new StringBuilder();
-    for (TCell cell : versions) {
-      rowStr.append(utf8(cell.value.array()));
-      rowStr.append("; ");
-    }
-    System.out.println("row: " + utf8(row.array()) + ", values: " + rowStr);
-  }
-
-  private void printRow(TRowResult rowResult) {
-    // copy values into a TreeMap to get them in sorted order
-
-    TreeMap<String, TCell> sorted = new TreeMap<String, TCell>();
-    for (Map.Entry<ByteBuffer, TCell> column : rowResult.columns.entrySet()) {
-      sorted.put(utf8(column.getKey().array()), column.getValue());
-    }
-
-    StringBuilder rowStr = new StringBuilder();
-    for (SortedMap.Entry<String, TCell> entry : sorted.entrySet()) {
-      rowStr.append(entry.getKey());
-      rowStr.append(" => ");
-      rowStr.append(utf8(entry.getValue().value.array()));
-      rowStr.append("; ");
-    }
-    System.out.println("row: " + utf8(rowResult.row.array()) + ", cols: " + 
rowStr);
-  }
-
-  private void printRow(List<TRowResult> rows) {
-    for (TRowResult rowResult : rows) {
-      printRow(rowResult);
-    }
-  }
-
-  static Subject getSubject() throws Exception {
-    if (!secure) return new Subject();
-    /*
-     * To authenticate the DemoClient, kinit should be invoked ahead.
-     * Here we try to get the Kerberos credential from the ticket cache.
-     */
-    LoginContext context = new LoginContext("", new Subject(), null,
-        new Configuration() {
-          @Override
-          public AppConfigurationEntry[] getAppConfigurationEntry(String name) 
{
-            Map<String, String> options = new HashMap<String, String>();
-            options.put("useKeyTab", "false");
-            options.put("storeKey", "false");
-            options.put("doNotPrompt", "true");
-            options.put("useTicketCache", "true");
-            options.put("renewTGT", "true");
-            options.put("refreshKrb5Config", "true");
-            options.put("isInitiator", "true");
-            String ticketCache = System.getenv("KRB5CCNAME");
-            if (ticketCache != null) {
-              options.put("ticketCache", ticketCache);
-            }
-            options.put("debug", "true");
-
-            return new AppConfigurationEntry[]{
-                new 
AppConfigurationEntry("com.sun.security.auth.module.Krb5LoginModule",
-                    AppConfigurationEntry.LoginModuleControlFlag.REQUIRED,
-                    options)};
-          }
-        });
-    context.login();
-    return context.getSubject();
-  }
-}

Reply via email to