This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/accumulo-testing.git

commit 7be840948685f5d61dcd2915e379bb82b96b00ff
Merge: 6c620c3 43796e6
Author: Christopher Tubbs <ctubb...@apache.org>
AuthorDate: Tue Dec 10 15:09:35 2024 -0500

    Merge branch '2.0' into 2.1

 pom.xml                                            |  1 -
 .../apache/accumulo/testing/KerberosHelper.java    | 85 ++++++++++++++++++++++
 .../java/org/apache/accumulo/testing/TestEnv.java  |  1 +
 .../testing/continuous/ContinuousMoru.java         |  8 +-
 .../apache/accumulo/testing/mapreduce/RowHash.java |  9 ++-
 .../accumulo/testing/mapreduce/TeraSortIngest.java |  5 +-
 .../testing/randomwalk/multitable/CopyTool.java    | 11 ++-
 .../randomwalk/sequential/MapRedVerifyTool.java    | 10 ++-
 8 files changed, 117 insertions(+), 13 deletions(-)

diff --cc pom.xml
index 7c2a15a,510bc4e..e53da23
--- a/pom.xml
+++ b/pom.xml
@@@ -269,14 -250,7 +269,13 @@@
          <!-- This was added to ensure project only uses public API -->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
-         <version>3.3.0</version>
 -        <version>3.1.0</version>
 +        <dependencies>
 +          <dependency>
 +            <groupId>com.puppycrawl.tools</groupId>
 +            <artifactId>checkstyle</artifactId>
 +            <version>10.12.3</version>
 +          </dependency>
 +        </dependencies>
          <executions>
            <execution>
              <id>check-style</id>
diff --cc src/main/java/org/apache/accumulo/testing/KerberosHelper.java
index 0000000,84bc325..4d3bc08
mode 000000,100644..100644
--- a/src/main/java/org/apache/accumulo/testing/KerberosHelper.java
+++ b/src/main/java/org/apache/accumulo/testing/KerberosHelper.java
@@@ -1,0 -1,83 +1,85 @@@
+ /*
 - * 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
++ * 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
++ *   https://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.
++ * 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.accumulo.testing;
+ 
+ import java.io.IOException;
+ import java.util.Properties;
+ 
+ import org.apache.accumulo.core.client.Accumulo;
+ import org.apache.accumulo.core.client.AccumuloClient;
+ import org.apache.accumulo.core.client.AccumuloException;
+ import org.apache.accumulo.core.client.AccumuloSecurityException;
+ import org.apache.accumulo.core.client.security.tokens.DelegationToken;
+ import org.apache.accumulo.core.conf.ClientProperty;
+ import org.apache.hadoop.conf.Configuration;
+ import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
+ import org.apache.hadoop.security.UserGroupInformation;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ public class KerberosHelper {
+   private static final Logger log = 
LoggerFactory.getLogger(KerberosHelper.class);
+ 
+   public static void saslLogin(Properties clientProps, Configuration conf) {
+     if 
(Boolean.parseBoolean(ClientProperty.SASL_ENABLED.getValue(clientProps))) {
+       conf.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION, 
"kerberos");
+       UserGroupInformation.setConfiguration(conf);
+       try {
+         UserGroupInformation.loginUserFromKeytab(
+             ClientProperty.AUTH_PRINCIPAL.getValue(clientProps),
+             ClientProperty.AUTH_TOKEN.getValue(clientProps));
+       } catch (IOException e) {
+         log.warn("Sasl login failed", e);
+       }
+     }
+   }
+ 
+   public static Properties configDelegationToken(Properties clientProps)
+       throws AccumuloException, AccumuloSecurityException {
+     if 
(Boolean.parseBoolean(ClientProperty.SASL_ENABLED.getValue(clientProps))) {
+       AccumuloClient client = Accumulo.newClient().from(clientProps).build();
+       DelegationToken dt = 
client.securityOperations().getDelegationToken(null);
+       clientProps = Accumulo.newClientProperties().from(clientProps)
+           .as(ClientProperty.AUTH_PRINCIPAL.getValue(clientProps), 
dt).build();
+       client.close();
+     }
+     return clientProps;
+   }
+ 
+   public static Properties configDelegationToken(TestEnv env)
+       throws AccumuloException, AccumuloSecurityException {
+     Properties clientProps = env.getClientProps();
+     if 
(Boolean.parseBoolean(ClientProperty.SASL_ENABLED.getValue(clientProps))) {
+       AccumuloClient client = env.getAccumuloClient();
+       clientProps = configDelegationToken(clientProps, client);
+       client.close();
+     }
+     return clientProps;
+   }
+ 
+   public static Properties configDelegationToken(Properties clientProps, 
AccumuloClient client)
+       throws AccumuloException, AccumuloSecurityException {
+     if 
(Boolean.parseBoolean(ClientProperty.SASL_ENABLED.getValue(clientProps))) {
+       DelegationToken dt = 
client.securityOperations().getDelegationToken(null);
+       clientProps = Accumulo.newClientProperties().from(clientProps)
+           .as(ClientProperty.AUTH_PRINCIPAL.getValue(clientProps), 
dt).build();
+     }
+     return clientProps;
+   }
+ }

Reply via email to