Procházet zdrojové kódy

svn merge -c 1210320 from trunk for HADOOP-7876.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23-PB@1230385 13f79535-47bb-0310-9956-ffa450edef68
Tsz-wo Sze před 13 roky
rodič
revize
1b98413d81

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -29,6 +29,9 @@ Release 0.23-PB - Unreleased
     HADOOP-7862  Move the support for multiple protocols to lower layer so
     that Writable, PB and Avro can all use it (Sanjay)
 
+    HADOOP-7876. Provided access to encoded key in DelegationKey for
+    use in protobuf based RPCs. (suresh)
+
   BUG FIXES
 
     HADOOP-7833. Fix findbugs warnings in protobuf generated code.

+ 12 - 3
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/DelegationKey.java

@@ -42,15 +42,20 @@ public class DelegationKey implements Writable {
   @Nullable
   private byte[] keyBytes = null;
 
+  /** Default constructore required for Writable */
   public DelegationKey() {
-    this(0, 0L, null);
+    this(0, 0L, (SecretKey)null);
   }
 
   public DelegationKey(int keyId, long expiryDate, SecretKey key) {
+    this(keyId, expiryDate, key != null ? key.getEncoded() : null);
+  }
+  
+  public DelegationKey(int keyId, long expiryDate, byte[] encodedKey) {
     this.keyId = keyId;
     this.expiryDate = expiryDate;
-    if (key!=null) {
-      this.keyBytes = key.getEncoded();
+    if (encodedKey != null) {
+      this.keyBytes = encodedKey;
     }
   }
 
@@ -70,6 +75,10 @@ public class DelegationKey implements Writable {
       return key;
     }
   }
+  
+  public byte[] getEncodedKey() {
+    return keyBytes;
+  }
 
   public void setExpiryDate(long expiryDate) {
     this.expiryDate = expiryDate;