From 4e54686d9346dc33a1cffd4a06c5c4ff9945f25e Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 05 Oct 2015 08:12:43 -0400 Subject: [PATCH] Merge branch 'topic/pr-934' into develop --- src/main/distrib/data/defaults.properties | 6 ++++++ src/main/java/com/gitblit/transport/ssh/SshKrbAuthenticator.java | 10 ++++++++++ 2 files changed, 16 insertions(+), 0 deletions(-) diff --git a/src/main/distrib/data/defaults.properties b/src/main/distrib/data/defaults.properties index f88407f..4606f5f 100644 --- a/src/main/distrib/data/defaults.properties +++ b/src/main/distrib/data/defaults.properties @@ -154,6 +154,12 @@ # SINCE 1.7.0 git.sshKrb5ServicePrincipalName = +# Strip the domain suffix from a kerberos username. +# e.g. james@bigbox would be "james" +# +# SINCE 1.7.0 +git.sshKrb5StripDomain = true + # SSH backend NIO2|MINA. # # The Apache Mina project recommends using the NIO2 backend. diff --git a/src/main/java/com/gitblit/transport/ssh/SshKrbAuthenticator.java b/src/main/java/com/gitblit/transport/ssh/SshKrbAuthenticator.java index 4afc00f..b6d233c 100644 --- a/src/main/java/com/gitblit/transport/ssh/SshKrbAuthenticator.java +++ b/src/main/java/com/gitblit/transport/ssh/SshKrbAuthenticator.java @@ -31,6 +31,8 @@ protected final Logger log = LoggerFactory.getLogger(getClass()); protected final IAuthenticationManager authManager; + protected final boolean stripDomain; + public SshKrbAuthenticator(IStoredSettings settings, IAuthenticationManager authManager) { this.authManager = authManager; @@ -44,6 +46,8 @@ if(! servicePrincipalName.isEmpty()) { setServicePrincipalName(servicePrincipalName); } + + this.stripDomain = settings.getBoolean(Keys.git.sshKrb5StripDomain, false); } @Override @@ -55,6 +59,12 @@ return true; } String username = identity.toLowerCase(Locale.US); + if (stripDomain) { + int p = username.indexOf('@'); + if (p > 0) { + username = username.substring(0, p); + } + } UserModel user = authManager.authenticate(username); if (user != null) { client.setUser(user); -- Gitblit v1.9.1