diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java index a60134d4f649..e6892d9784db 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java @@ -29,7 +29,6 @@ import java.util.List; import com.google.common.annotations.VisibleForTesting; -import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.crypto.key.KeyProvider; import org.apache.hadoop.fs.BlockLocation; import org.apache.hadoop.fs.FileAlreadyExistsException; @@ -37,7 +36,6 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.PathIsNotEmptyDirectoryException; import org.apache.hadoop.fs.SafeModeAction; -import org.apache.hadoop.hdds.annotation.InterfaceAudience; import org.apache.hadoop.hdds.client.ReplicationConfig; import org.apache.hadoop.hdds.client.ReplicationFactor; import org.apache.hadoop.hdds.conf.ConfigurationSource; @@ -69,7 +67,6 @@ import org.apache.hadoop.ozone.snapshot.SnapshotDiffReportOzone; import org.apache.hadoop.ozone.snapshot.SnapshotDiffResponse; import org.apache.hadoop.security.token.Token; -import org.apache.hadoop.security.token.TokenRenewer; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -470,56 +467,6 @@ void setClock(Clock monotonicClock) { this.clock = monotonicClock; } - /** - * Ozone Delegation Token Renewer. - */ - @InterfaceAudience.Private - public static class Renewer extends TokenRenewer { - - //Ensure that OzoneConfiguration files are loaded before trying to use - // the renewer. - static { - OzoneConfiguration.activate(); - } - - public Text getKind() { - return OzoneTokenIdentifier.KIND_NAME; - } - - @Override - public boolean handleKind(Text kind) { - return getKind().equals(kind); - } - - @Override - public boolean isManaged(Token token) throws IOException { - return true; - } - - @Override - public long renew(Token token, Configuration conf) - throws IOException, InterruptedException { - Token ozoneDt = - (Token) token; - - OzoneClient ozoneClient = - OzoneClientFactory.getOzoneClient(OzoneConfiguration.of(conf), - ozoneDt); - return ozoneClient.getObjectStore().renewDelegationToken(ozoneDt); - } - - @Override - public void cancel(Token token, Configuration conf) - throws IOException, InterruptedException { - Token ozoneDt = - (Token) token; - OzoneClient ozoneClient = - OzoneClientFactory.getOzoneClient(OzoneConfiguration.of(conf), - ozoneDt); - ozoneClient.getObjectStore().cancelDelegationToken(ozoneDt); - } - } - /** * Adapter to convert OzoneKey to a safe and simple Key implementation. */ diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java index 085a2300fd41..e565c2bedf37 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java @@ -32,7 +32,6 @@ import com.google.common.base.Preconditions; import org.apache.commons.collections.CollectionUtils; -import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.crypto.key.KeyProvider; import org.apache.hadoop.fs.BlockLocation; import org.apache.hadoop.fs.FileAlreadyExistsException; @@ -43,7 +42,6 @@ import org.apache.hadoop.fs.PathIsNotEmptyDirectoryException; import org.apache.hadoop.fs.SafeModeAction; import org.apache.hadoop.fs.permission.FsPermission; -import org.apache.hadoop.hdds.annotation.InterfaceAudience; import org.apache.hadoop.hdds.client.ReplicationConfig; import org.apache.hadoop.hdds.client.ReplicationFactor; import org.apache.hadoop.hdds.conf.ConfigurationSource; @@ -80,7 +78,6 @@ import org.apache.hadoop.ozone.snapshot.SnapshotDiffResponse; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.token.Token; -import org.apache.hadoop.security.token.TokenRenewer; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -958,55 +955,6 @@ public String getCanonicalServiceName() { return objectStore.getCanonicalServiceName(); } - /** - * Ozone Delegation Token Renewer. - */ - @InterfaceAudience.Private - public static class Renewer extends TokenRenewer { - - //Ensure that OzoneConfiguration files are loaded before trying to use - // the renewer. - static { - OzoneConfiguration.activate(); - } - - public Text getKind() { - return OzoneTokenIdentifier.KIND_NAME; - } - - @Override - public boolean handleKind(Text kind) { - return getKind().equals(kind); - } - - @Override - public boolean isManaged(Token token) throws IOException { - return true; - } - - @Override - public long renew(Token token, Configuration conf) - throws IOException, InterruptedException { - Token ozoneDt = - (Token) token; - OzoneClient ozoneClient = - OzoneClientFactory.getOzoneClient(OzoneConfiguration.of(conf), - ozoneDt); - return ozoneClient.getObjectStore().renewDelegationToken(ozoneDt); - } - - @Override - public void cancel(Token token, Configuration conf) - throws IOException, InterruptedException { - Token ozoneDt = - (Token) token; - OzoneClient ozoneClient = - OzoneClientFactory.getOzoneClient(OzoneConfiguration.of(conf), - ozoneDt); - ozoneClient.getObjectStore().cancelDelegationToken(ozoneDt); - } - } - /** * Adapter to convert OzoneKey to a safe and simple Key implementation. */ diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/OzoneDelegationTokenRenewer.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/OzoneDelegationTokenRenewer.java new file mode 100644 index 000000000000..b64c0a2dbbdb --- /dev/null +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/OzoneDelegationTokenRenewer.java @@ -0,0 +1,79 @@ +/* + * 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.fs.ozone; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hdds.annotation.InterfaceAudience; +import org.apache.hadoop.hdds.conf.OzoneConfiguration; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.ozone.client.OzoneClient; +import org.apache.hadoop.ozone.security.OzoneTokenIdentifier; +import org.apache.hadoop.security.token.Token; +import org.apache.hadoop.security.token.TokenRenewer; + +import java.io.IOException; + +import static org.apache.hadoop.ozone.client.OzoneClientFactory.getOzoneClient; + +/** + * Ozone Delegation Token Renewer. + */ +@InterfaceAudience.Private +public class OzoneDelegationTokenRenewer extends TokenRenewer { + + //Ensure that OzoneConfiguration files are loaded before trying to use + // the renewer. + static { + OzoneConfiguration.activate(); + } + + public Text getKind() { + return OzoneTokenIdentifier.KIND_NAME; + } + + @Override + public boolean handleKind(Text kind) { + return getKind().equals(kind); + } + + @Override + public boolean isManaged(Token token) { + return true; + } + + @Override + public long renew(Token token, Configuration conf) throws IOException { + Token ozoneDt = + (Token) token; + OzoneConfiguration ozoneConf = OzoneConfiguration.of(conf); + try (OzoneClient ozoneClient = getOzoneClient(ozoneConf, ozoneDt)) { + return ozoneClient.getObjectStore().renewDelegationToken(ozoneDt); + } + } + + @Override + public void cancel(Token token, Configuration conf) + throws IOException, InterruptedException { + Token ozoneDt = + (Token) token; + OzoneConfiguration ozoneConf = OzoneConfiguration.of(conf); + try (OzoneClient ozoneClient = getOzoneClient(ozoneConf, ozoneDt)) { + ozoneClient.getObjectStore().cancelDelegationToken(ozoneDt); + } + } +} diff --git a/hadoop-ozone/ozonefs-hadoop3/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer b/hadoop-ozone/ozonefs-hadoop3/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer index ac1b3cf677e9..a5de85b69cf3 100644 --- a/hadoop-ozone/ozonefs-hadoop3/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer +++ b/hadoop-ozone/ozonefs-hadoop3/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer @@ -16,5 +16,4 @@ # limitations under the License. # -org.apache.hadoop.fs.ozone.BasicOzoneClientAdapterImpl$Renewer -org.apache.hadoop.fs.ozone.BasicRootedOzoneClientAdapterImpl$Renewer +org.apache.hadoop.fs.ozone.OzoneDelegationTokenRenewer diff --git a/hadoop-ozone/ozonefs/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer b/hadoop-ozone/ozonefs/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer index ac1b3cf677e9..a5de85b69cf3 100644 --- a/hadoop-ozone/ozonefs/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer +++ b/hadoop-ozone/ozonefs/src/main/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer @@ -16,5 +16,4 @@ # limitations under the License. # -org.apache.hadoop.fs.ozone.BasicOzoneClientAdapterImpl$Renewer -org.apache.hadoop.fs.ozone.BasicRootedOzoneClientAdapterImpl$Renewer +org.apache.hadoop.fs.ozone.OzoneDelegationTokenRenewer