synchronized void removeExpiredKeys() {
    if (!leaderElector.isMaster()) {
      LOG.info("Skipping removeExpiredKeys() because not running as master.");
      return;
    }

    long now = EnvironmentEdgeManager.currentTime();
    Iterator<AuthenticationKey> iter = allKeys.values().iterator();
    while (iter.hasNext()) {
      AuthenticationKey key = iter.next();
      if (key.getExpiration() < now) {
        LOG.debug("Removing expired key {}", key);
        iter.remove();
        zkWatcher.removeKeyFromZK(key);
      }
    }
  }
Create a new secret manager instance for generating keys.
@param conf              Configuration to use
@param zk                Connection to zookeeper for handling leader elections
@param keyUpdateInterval Time (in milliseconds) between rolling a new master key for token
                         signing
@param tokenMaxLifetime  Maximum age (in milliseconds) before a token expires and is no longer
                         valid
hbase-server/src/main/java/org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.java