Pārlūkot izejas kodu

HDFS-16563. Namenode WebUI prints sensitive information on Token expiry (#4241)

Contributed by Renukaprasad C
Renukaprasad C 3 gadi atpakaļ
vecāks
revīzija
7bd4ac3ce0

+ 9 - 5
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/token/delegation/AbstractDelegationTokenSecretManager.java

@@ -510,15 +510,19 @@ extends AbstractDelegationTokenIdentifier>
       throws InvalidToken {
     assert Thread.holdsLock(this);
     DelegationTokenInformation info = getTokenInfo(identifier);
+    String err;
     if (info == null) {
-      throw new InvalidToken("token " + formatTokenId(identifier)
-          + " can't be found in cache");
+      err = "Token for real user: " + identifier.getRealUser() + ", can't be found in cache";
+      LOG.warn("{}, Token={}", err, formatTokenId(identifier));
+      throw new InvalidToken(err);
     }
     long now = Time.now();
     if (info.getRenewDate() < now) {
-      throw new InvalidToken("token " + formatTokenId(identifier) + " is " +
-          "expired, current time: " + Time.formatTime(now) +
-          " expected renewal time: " + Time.formatTime(info.getRenewDate()));
+      err =
+          "Token has" + identifier.getRealUser() + "expired, current time: " + Time.formatTime(now)
+              + " expected renewal time: " + Time.formatTime(info.getRenewDate());
+      LOG.info("{}, Token={}", err, formatTokenId(identifier));
+      throw new InvalidToken(err);
     }
     return info;
   }