diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/BaseClientToAMTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/BaseClientToAMTokenSecretManager.java index c455aac..c2562e5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/BaseClientToAMTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/BaseClientToAMTokenSecretManager.java @@ -36,7 +36,11 @@ @Public @Evolving public abstract class BaseClientToAMTokenSecretManager extends - SecretManager { + SecretManagerService { + + public BaseClientToAMTokenSecretManager(String serviceName) { + super(serviceName); + } @Private public abstract SecretKey getMasterKey( diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/ClientToAMTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/ClientToAMTokenSecretManager.java index 541f7a8..afc5048 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/ClientToAMTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/ClientToAMTokenSecretManager.java @@ -42,7 +42,7 @@ public ClientToAMTokenSecretManager( ApplicationAttemptId applicationAttemptID, byte[] key) { - super(); + super(ClientToAMTokenSecretManager.class.getName()); if (key != null) { this.masterKey = SecretManager.createSecretKey(key); } else { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/DelegationTokenSecretManagerService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/DelegationTokenSecretManagerService.java new file mode 100644 index 0000000..171111b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/DelegationTokenSecretManagerService.java @@ -0,0 +1,147 @@ +/** +* 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.yarn.security.client; + +import org.apache.hadoop.classification.InterfaceAudience.Public; +import org.apache.hadoop.classification.InterfaceStability.Evolving; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.security.token.SecretManager; +import org.apache.hadoop.security.token.TokenIdentifier; +import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenIdentifier; +import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager; +import org.apache.hadoop.service.AbstractService; +import org.apache.hadoop.service.LifecycleEvent; +import org.apache.hadoop.service.Service; +import org.apache.hadoop.service.ServiceStateChangeListener; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * AbstractDelegationSecretManager wrapper class for YARN to treat ServiceManager as Service. + */ +@Public +@Evolving +public abstract +class DelegationTokenSecretManagerService + extends AbstractDelegationTokenSecretManager implements Service { + private final InternalSecretManagerService secretManagerService; + + class InternalSecretManagerService extends AbstractService { + /** + * Construct the service. + * + * @param name service name + */ + public InternalSecretManagerService(String name) { + super(name); + } + } + + public DelegationTokenSecretManagerService(String serviceName, + long delegationKeyUpdateInterval, + long delegationTokenMaxLifetime, + long delegationTokenRenewInterval, + long delegationTokenRemoverScanInterval) { + super(delegationKeyUpdateInterval, delegationTokenMaxLifetime, + delegationTokenRenewInterval, delegationTokenRemoverScanInterval); + secretManagerService = new InternalSecretManagerService(serviceName); + } + + @Override + public void init(Configuration config) { + secretManagerService.init(config); + } + + @Override + public void start() { + secretManagerService.start(); + } + + @Override + public void stop() { + secretManagerService.stop(); + } + + @Override + public void close() throws IOException { + secretManagerService.close(); + } + + @Override + public void registerServiceListener(ServiceStateChangeListener listener) { + secretManagerService.registerServiceListener(listener); + } + + @Override + public void unregisterServiceListener(ServiceStateChangeListener listener) { + secretManagerService.unregisterServiceListener(listener); + } + + @Override + public String getName() { + return secretManagerService.getName(); + } + + @Override + public Configuration getConfig() { + return secretManagerService.getConfig(); + } + + @Override + public STATE getServiceState() { + return secretManagerService.getServiceState(); + } + + @Override + public long getStartTime() { + return secretManagerService.getStartTime(); + } + + @Override + public boolean isInState(STATE state) { + return secretManagerService.isInState(state); + } + + @Override + public Throwable getFailureCause() { + return secretManagerService.getFailureCause(); + } + + @Override + public STATE getFailureState() { + return secretManagerService.getFailureState(); + } + + @Override + public boolean waitForServiceToStop(long timeout) { + return secretManagerService.waitForServiceToStop(timeout); + } + + @Override + public List getLifecycleHistory() { + return secretManagerService.getLifecycleHistory(); + } + + @Override + public Map getBlockers() { + return secretManagerService.getBlockers(); + } +} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/SecretManagerService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/SecretManagerService.java new file mode 100644 index 0000000..c6c2533 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/SecretManagerService.java @@ -0,0 +1,138 @@ +/** +* 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.yarn.security.client; + +import org.apache.hadoop.classification.InterfaceAudience.Public; +import org.apache.hadoop.classification.InterfaceStability.Evolving; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.security.token.SecretManager; +import org.apache.hadoop.security.token.TokenIdentifier; +import org.apache.hadoop.service.AbstractService; +import org.apache.hadoop.service.LifecycleEvent; +import org.apache.hadoop.service.Service; +import org.apache.hadoop.service.ServiceStateChangeListener; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * SecretManager wrapper class for YARN to treat ServiceManager as Service. + */ +@Public +@Evolving +public abstract class SecretManagerService extends + SecretManager implements Service { + private final InternalSecretManagerService secretManagerService; + + class InternalSecretManagerService extends AbstractService { + /** + * Construct the service. + * + * @param name service name + */ + public InternalSecretManagerService(String name) { + super(name); + } + } + + public SecretManagerService(String serviceName) { + secretManagerService = new InternalSecretManagerService(serviceName); + } + + @Override + public void init(Configuration config) { + secretManagerService.init(config); + } + + @Override + public void start() { + secretManagerService.start(); + } + + @Override + public void stop() { + secretManagerService.stop(); + } + + @Override + public void close() throws IOException { + secretManagerService.close(); + } + + @Override + public void registerServiceListener(ServiceStateChangeListener listener) { + secretManagerService.registerServiceListener(listener); + } + + @Override + public void unregisterServiceListener(ServiceStateChangeListener listener) { + secretManagerService.unregisterServiceListener(listener); + } + + @Override + public String getName() { + return secretManagerService.getName(); + } + + @Override + public Configuration getConfig() { + return secretManagerService.getConfig(); + } + + @Override + public STATE getServiceState() { + return secretManagerService.getServiceState(); + } + + @Override + public long getStartTime() { + return secretManagerService.getStartTime(); + } + + @Override + public boolean isInState(STATE state) { + return secretManagerService.isInState(state); + } + + @Override + public Throwable getFailureCause() { + return secretManagerService.getFailureCause(); + } + + @Override + public STATE getFailureState() { + return secretManagerService.getFailureState(); + } + + @Override + public boolean waitForServiceToStop(long timeout) { + return secretManagerService.waitForServiceToStop(timeout); + } + + @Override + public List getLifecycleHistory() { + return secretManagerService.getLifecycleHistory(); + } + + @Override + public Map getBlockers() { + return secretManagerService.getBlockers(); + } +} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseContainerTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseContainerTokenSecretManager.java index ccfe8f5..27f7cef 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseContainerTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseContainerTokenSecretManager.java @@ -30,6 +30,7 @@ import org.apache.hadoop.security.token.SecretManager; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.security.ContainerTokenIdentifier; +import org.apache.hadoop.yarn.security.client.SecretManagerService; import org.apache.hadoop.yarn.server.api.records.MasterKey; /** @@ -38,7 +39,7 @@ * */ public class BaseContainerTokenSecretManager extends - SecretManager { + SecretManagerService { private static Log LOG = LogFactory .getLog(BaseContainerTokenSecretManager.class); @@ -58,7 +59,9 @@ protected final long containerTokenExpiryInterval; - public BaseContainerTokenSecretManager(Configuration conf) { + public BaseContainerTokenSecretManager(String serviceName, + Configuration conf) { + super(serviceName); this.containerTokenExpiryInterval = conf.getInt(YarnConfiguration.RM_CONTAINER_ALLOC_EXPIRY_INTERVAL_MS, YarnConfiguration.DEFAULT_RM_CONTAINER_ALLOC_EXPIRY_INTERVAL_MS); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseNMTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseNMTokenSecretManager.java index 01da1af..7f0a4fc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseNMTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/security/BaseNMTokenSecretManager.java @@ -34,10 +34,11 @@ import org.apache.hadoop.yarn.api.records.NodeId; import org.apache.hadoop.yarn.api.records.Token; import org.apache.hadoop.yarn.security.NMTokenIdentifier; +import org.apache.hadoop.yarn.security.client.SecretManagerService; import org.apache.hadoop.yarn.server.api.records.MasterKey; public class BaseNMTokenSecretManager extends - SecretManager { + SecretManagerService { private static Log LOG = LogFactory .getLog(BaseNMTokenSecretManager.class); @@ -49,7 +50,11 @@ protected final Lock writeLock = readWriteLock.writeLock(); protected MasterKeyData currentMasterKey; - + + public BaseNMTokenSecretManager(String serviceName) { + super(serviceName); + } + protected MasterKeyData createNewMasterKey() { this.writeLock.lock(); try { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/security/LocalizerTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/security/LocalizerTokenSecretManager.java index 5eff43b..be8a7cd 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/security/LocalizerTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/security/LocalizerTokenSecretManager.java @@ -21,13 +21,15 @@ import javax.crypto.SecretKey; import org.apache.hadoop.security.token.SecretManager; +import org.apache.hadoop.yarn.security.client.SecretManagerService; public class LocalizerTokenSecretManager extends - SecretManager { + SecretManagerService { private final SecretKey secretKey; public LocalizerTokenSecretManager() { + super(LocalizerTokenSecretManager.class.getName()); this.secretKey = generateSecret(); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMContainerTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMContainerTokenSecretManager.java index 8860a95..349970b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMContainerTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMContainerTokenSecretManager.java @@ -54,7 +54,7 @@ private String nodeHostAddr; public NMContainerTokenSecretManager(Configuration conf) { - super(conf); + super(NMContainerTokenSecretManager.class.getName(), conf); recentlyStartedContainerTracker = new TreeMap>(); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java index 9569fdc..1521320 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/security/NMTokenSecretManagerInNM.java @@ -49,6 +49,7 @@ public NMTokenSecretManagerInNM() { + super(NMTokenSecretManagerInNM.class.getName()); this.oldMasterKeys = new HashMap(); appToAppAttemptMap = diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/AMRMTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/AMRMTokenSecretManager.java index 5d21ec0..b65049e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/AMRMTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/AMRMTokenSecretManager.java @@ -30,11 +30,11 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.security.token.SecretManager; import org.apache.hadoop.security.token.Token; import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; +import org.apache.hadoop.yarn.security.client.SecretManagerService; /** * AMRM-tokens are per ApplicationAttempt. If users redistribute their @@ -44,7 +44,7 @@ * so no need to remember master-keys even after rolling them. */ public class AMRMTokenSecretManager extends - SecretManager { + SecretManagerService { private static final Log LOG = LogFactory .getLog(AMRMTokenSecretManager.class); @@ -60,6 +60,7 @@ * Create an {@link AMRMTokenSecretManager} */ public AMRMTokenSecretManager(Configuration conf) { + super(AMRMTokenSecretManager.class.getName()); rollMasterKey(); this.timer = new Timer(); this.rollingInterval = diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/ClientToAMTokenSecretManagerInRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/ClientToAMTokenSecretManagerInRM.java index 4fbe2ce..996d3a6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/ClientToAMTokenSecretManagerInRM.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/ClientToAMTokenSecretManagerInRM.java @@ -33,6 +33,10 @@ private Map masterKeys = new HashMap(); + public ClientToAMTokenSecretManagerInRM() { + super(ClientToAMTokenSecretManagerInRM.class.getName()); + } + public synchronized SecretKey createMasterKey( ApplicationAttemptId applicationAttemptID) { return generateSecret(); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/NMTokenSecretManagerInRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/NMTokenSecretManagerInRM.java index ab31eaf..a065377 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/NMTokenSecretManagerInRM.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/NMTokenSecretManagerInRM.java @@ -57,6 +57,7 @@ private final ConcurrentHashMap> appAttemptToNodeKeyMap; public NMTokenSecretManagerInRM(Configuration conf) { + super(NMTokenSecretManagerInRM.class.getName()); this.conf = conf; timer = new Timer(); rollingInterval = this.conf.getLong( diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMContainerTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMContainerTokenSecretManager.java index c62f2ee..9f9db23 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMContainerTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMContainerTokenSecretManager.java @@ -55,7 +55,7 @@ private final long activationDelay; public RMContainerTokenSecretManager(Configuration conf) { - super(conf); + super(RMContainerTokenSecretManager.class.getName(), conf); this.timer = new Timer(); this.rollingInterval = conf.getLong( diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java index 23939de..8ad4117 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/RMDelegationTokenSecretManager.java @@ -29,9 +29,9 @@ import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceStability; -import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager; import org.apache.hadoop.security.token.delegation.DelegationKey; import org.apache.hadoop.util.ExitUtil; +import org.apache.hadoop.yarn.security.client.DelegationTokenSecretManagerService; import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier; import org.apache.hadoop.yarn.server.resourcemanager.RMContext; import org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore.RMState; @@ -47,7 +47,7 @@ @InterfaceAudience.Private @InterfaceStability.Unstable public class RMDelegationTokenSecretManager extends - AbstractDelegationTokenSecretManager implements + DelegationTokenSecretManagerService implements Recoverable { private static final Log LOG = LogFactory .getLog(RMDelegationTokenSecretManager.class); @@ -69,7 +69,8 @@ public RMDelegationTokenSecretManager(long delegationKeyUpdateInterval, long delegationTokenRenewInterval, long delegationTokenRemoverScanInterval, RMContext rmContext) { - super(delegationKeyUpdateInterval, delegationTokenMaxLifetime, + super(RMDelegationTokenSecretManager.class.getName(), + delegationKeyUpdateInterval, delegationTokenMaxLifetime, delegationTokenRenewInterval, delegationTokenRemoverScanInterval); this.rmContext = rmContext; }