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 c09b6bc401 AMBARI-25333: Regenerate keytab generates empty keytab file if no file present in cache (#3486) c09b6bc401 is described below commit c09b6bc4014cc5087d0ac11f9ff4870dd90dab1e Author: Zhiguo Wu <wuzhi...@apache.org> AuthorDate: Mon Nov 14 23:02:56 2022 +0800 AMBARI-25333: Regenerate keytab generates empty keytab file if no file present in cache (#3486) --- .../kerberos/CreatePrincipalsServerAction.java | 5 +++-- .../kerberos/KerberosServerAction.java | 24 ++++++---------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java index a62af40b14..5af81cfccb 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java @@ -157,8 +157,9 @@ public class CreatePrincipalsServerAction extends KerberosServerAction { // This principal has not been processed before, process it. processPrincipal = true; } else if (!StringUtils.isEmpty(kerberosPrincipalEntity.getCachedKeytabPath())) { - // This principal has been processed and a keytab file has been cached for it... do not process it. - processPrincipal = false; + // This principal has been processed, process again only if there is no physical keytab file. + File file = new File(kerberosPrincipalEntity.getCachedKeytabPath()); + processPrincipal = !file.exists(); } else { // This principal has been processed but a keytab file for it has not been distributed... process it. processPrincipal = true; diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java index 397914a2dc..437261e412 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerAction.java @@ -306,19 +306,13 @@ public abstract class KerberosServerAction extends AbstractServerAction { * to a given request * @return A Map of principals-to-password */ + @SuppressWarnings("unchecked") protected static Map<String, String> getPrincipalPasswordMap(Map<String, Object> requestSharedDataContext) { if (requestSharedDataContext == null) { return null; - } else { - Object map = requestSharedDataContext.get(PRINCIPAL_PASSWORD_MAP); - - if (map == null) { - map = new HashMap<String, String>(); - requestSharedDataContext.put(PRINCIPAL_PASSWORD_MAP, map); - } - - return (Map<String, String>) map; } + Object map = requestSharedDataContext.computeIfAbsent(PRINCIPAL_PASSWORD_MAP, k -> new HashMap<String, String>()); + return (Map<String, String>) map; } /** @@ -332,19 +326,13 @@ public abstract class KerberosServerAction extends AbstractServerAction { * to a given request * @return A Map of principals-to-key_numbers */ + @SuppressWarnings("unchecked") protected static Map<String, Integer> getPrincipalKeyNumberMap(Map<String, Object> requestSharedDataContext) { if (requestSharedDataContext == null) { return null; - } else { - Object map = requestSharedDataContext.get(PRINCIPAL_KEY_NUMBER_MAP); - - if (map == null) { - map = new HashMap<String, String>(); - requestSharedDataContext.put(PRINCIPAL_KEY_NUMBER_MAP, map); - } - - return (Map<String, Integer>) map; } + Object map = requestSharedDataContext.computeIfAbsent(PRINCIPAL_KEY_NUMBER_MAP, k -> new HashMap<String, String>()); + return (Map<String, Integer>) map; } /** --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@ambari.apache.org For additional commands, e-mail: commits-h...@ambari.apache.org