Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
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.security.token;
 
 
Helper class to obtain a filesystem delegation token. Mainly used by Map-Reduce jobs that requires to read/write data to a remote file-system (e.g. BulkLoad, ExportSnapshot).
 
 public class FsDelegationToken {
   private static final Log LOG = LogFactory.getLog(FsDelegationToken.class);
 
   private final UserProvider userProvider;
   private final String renewer;
 
   private boolean hasForwardedToken = false;
   private Token<?> userToken = null;
   private FileSystem fs = null;
 
   /*
    * @param renewer the account name that is allowed to renew the token.
    */
   public FsDelegationToken(final UserProvider userProviderfinal String renewer) {
     this. = userProvider;
     this. = renewer;
   }

  
Acquire the delegation token for the specified filesytem. Before requesting a new delegation token, tries to find one already available.

Parameters:
fs the filesystem that requires the delegation token
Throws:
java.io.IOException on fs.getDelegationToken() failure
 
   public void acquireDelegationToken(final FileSystem fs)
       throws IOException {
       this. = fs;
        = .getCurrent().getToken("HDFS_DELEGATION_TOKEN",
                                                       fs.getCanonicalServiceName());
       if ( == null) {
          = false;
         try {
            = fs.getDelegationToken();
         } catch (NullPointerException npe) {
           // we need to handle NullPointerException in case HADOOP-10009 is missing
           .error("Failed to get token for " + );
         }
       } else {
          = true;
         .info("Use the existing token: " + );
       }
     }
   }

  
Releases a previously acquired delegation token.
 
   public void releaseDelegationToken() {
       if ( != null && !) {
         try {
           .cancel(this..getConf());
         } catch (Exception e) {
           .warn("Failed to cancel HDFS delegation token: " + e);
         }
       }
       this. = null;
       this. = null;
     }
   }
    return ;
  }

  

Returns:
the account name that is allowed to renew the token.
  public String getRenewer() {
    return ;
  }

  

Returns:
the delegation token acquired, or null in case it was not acquired
  public Token<?> getUserToken() {
    return ;
  }
  public FileSystem getFileSystem() {
    return ;
  }
New to GrepCode? Check out our FAQ X