You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by wu...@apache.org on 2022/11/10 17:54:12 UTC

[ambari] branch trunk updated: AMBARI-25295: Ambari Server Error on submitting EU (#3474)

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

wuzhiguo pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 283bc3b35f AMBARI-25295: Ambari Server Error on submitting EU (#3474)
283bc3b35f is described below

commit 283bc3b35f3cc45d3503d3f9c10e823b78c69eb3
Author: Zhiguo Wu <wu...@apache.org>
AuthorDate: Fri Nov 11 01:54:05 2022 +0800

    AMBARI-25295: Ambari Server Error on submitting EU (#3474)
---
 .../serveraction/kerberos/IPAKerberosOperationHandler.java   |  9 +++++++--
 .../serveraction/kerberos/MITKerberosOperationHandler.java   | 12 ++++++++++--
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/IPAKerberosOperationHandler.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/IPAKerberosOperationHandler.java
index 07ab77ee68..d9732e9dd8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/IPAKerberosOperationHandler.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/IPAKerberosOperationHandler.java
@@ -18,6 +18,7 @@
 
 package org.apache.ambari.server.serveraction.kerberos;
 
+import java.util.Arrays;
 import java.util.Map;
 import java.util.Set;
 
@@ -254,13 +255,17 @@ public class IPAKerberosOperationHandler extends KDCKerberosOperationHandler {
   }
 
   @Override
-  protected String[] getKinitCommand(String executableKinit, PrincipalKeyCredential credentials, String credentialsCache, Map<String, String> kerberosConfiguration) {
-    return new String[]{
+  protected String[] getKinitCommand(String executableKinit, PrincipalKeyCredential credentials, String credentialsCache, Map<String, String> kerberosConfiguration) throws KerberosOperationException {
+    String [] command = new String[]{
         executableKinit,
         "-c",
         credentialsCache,
         credentials.getPrincipal()
     };
+    if (Arrays.asList(command).contains(null)){
+      throw new KerberosOperationException("Got a null value, can not create 'kinit' command");
+    }
+    return command;
   }
 
   @Override
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandler.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandler.java
index e2467569eb..c3831006bd 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandler.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandler.java
@@ -19,6 +19,7 @@
 package org.apache.ambari.server.serveraction.kerberos;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -342,8 +343,11 @@ public class MITKerberosOperationHandler extends KDCKerberosOperationHandler {
   protected String[] getKinitCommand(String executableKinit, PrincipalKeyCredential credentials, String credentialsCache, Map<String, String> kerberosConfiguration) throws KerberosOperationException {
     // kinit -c <path> -S kadmin/`hostname -f` <principal>
     try {
-      final String kadminPrincipalName = variableReplacementHelper.replaceVariables(kerberosConfiguration.get(KERBEROS_ENV_KADMIN_PRINCIPAL_NAME), buildReplacementsMap(kerberosConfiguration));
-      return new String[]{
+      String kadminPrincipalName = variableReplacementHelper.replaceVariables(kerberosConfiguration.get(KERBEROS_ENV_KADMIN_PRINCIPAL_NAME), buildReplacementsMap(kerberosConfiguration));
+      if (kadminPrincipalName == null) {
+        kadminPrincipalName = String.format("kadmin/%s", getAdminServerHost(false));
+      }
+      String [] command = new String[]{
           executableKinit,
           "-c",
           credentialsCache,
@@ -351,6 +355,10 @@ public class MITKerberosOperationHandler extends KDCKerberosOperationHandler {
           kadminPrincipalName,
           credentials.getPrincipal()
       };
+      if (Arrays.asList(command).contains(null)){
+        throw new KerberosOperationException("Got a null value, can not create 'kinit' command");
+      }
+      return command;
     } catch (AmbariException e) {
       throw new KerberosOperationException("Error while getting 'kinit' command", e);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ambari.apache.org
For additional commands, e-mail: commits-help@ambari.apache.org