You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2017/08/18 18:10:44 UTC

kudu git commit: KUDU-1942. Kerberos fails to log in on hostnames with capital letters

Repository: kudu
Updated Branches:
  refs/heads/master 351337ee2 -> ecfcb3121


KUDU-1942. Kerberos fails to log in on hostnames with capital letters

This ensures that servers canonicalize their FQDNs to lower-case before
generating Kerberos principal names.

With this change I was able to set up a working cluster on my laptop
with a capitalized hostname, where before it would fail as described in
the JIRA.

I also verified that I was able to connect from both C++ and Java
clients.

Change-Id: I5ef65dd827459476a2d225d8e3f7c80ff2fdf627
Reviewed-on: http://gerrit.cloudera.org:8080/7693
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <as...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/ecfcb312
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/ecfcb312
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/ecfcb312

Branch: refs/heads/master
Commit: ecfcb312161a4bc6f8da0ebb837169a2acf08eef
Parents: 351337e
Author: Todd Lipcon <to...@apache.org>
Authored: Wed Aug 16 19:08:14 2017 -0700
Committer: Alexey Serbin <as...@cloudera.com>
Committed: Fri Aug 18 18:04:43 2017 +0000

----------------------------------------------------------------------
 src/kudu/security/init.cc | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/ecfcb312/src/kudu/security/init.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/init.cc b/src/kudu/security/init.cc
index 25e229f..7306b69 100644
--- a/src/kudu/security/init.cc
+++ b/src/kudu/security/init.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/security/init.h"
 
+#include <ctype.h>
 #include <krb5/krb5.h>
 
 #include <algorithm>
@@ -393,6 +394,8 @@ Status GetConfiguredPrincipal(string* principal) {
   if (!GetFQDN(&hostname).ok()) {
     RETURN_NOT_OK(GetHostname(&hostname));
   }
+  // Hosts in principal names are canonicalized to lower-case.
+  std::transform(hostname.begin(), hostname.end(), hostname.begin(), tolower);
   GlobalReplaceSubstring("_HOST", hostname, &p);
   *principal = p;
   return Status::OK();