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/14 15:03:02 UTC
[ambari] branch trunk updated: AMBARI-25333: Regenerate keytab generates empty keytab file if no file present in cache (#3486)
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 <wu...@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-unsubscribe@ambari.apache.org
For additional commands, e-mail: commits-help@ambari.apache.org