aaahd 发表于 2019-1-8 13:19:04

使用zookeeper管理多个hbase集群

/**  
   * 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.zookeeper.server.auth;
  

  
    import org.apache.zookeeper.data.Id;
  
    import org.apache.zookeeper.server.ServerCnxn;
  
    import org.apache.zookeeper.KeeperException;
  

  
    public class IPAuthenticationProvider implements AuthenticationProvider {
  

  
      public String getScheme() {
  
            return "ip";
  
      }
  

  
      public KeeperException.Code
  
            handleAuthentication(ServerCnxn cnxn, byte[] authData)
  
      {
  
            String id = cnxn.getRemoteAddress().getAddress().getHostAddress();
  
            cnxn.getAuthInfo().add(new Id(getScheme(), id));
  
            return KeeperException.Code.OK;
  
      }
  

  
      // This is a bit weird but we need to return the address and the number of
  
      // bytes (to distinguish between IPv4 and IPv6
  
      private byte[] addr2Bytes(String addr) {
  
            byte b[] = v4addr2Bytes1(addr);
  
            // TODO Write the v6addr2Bytes
  
            return b;
  
      }
  

  
      private byte v4addr2Bytes(String part) throws NumberFormatException{
  
            try {
  
               int v = Integer.parseInt(part);
  
               if (v >= 0 && v
页: [1]
查看完整版本: 使用zookeeper管理多个hbase集群