James Moger
2015-10-05 4e54686d9346dc33a1cffd4a06c5c4ff9945f25e
Merge branch 'topic/pull request #934' into develop
2 files modified
16 ■■■■■ changed files
src/main/distrib/data/defaults.properties 6 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/transport/ssh/SshKrbAuthenticator.java 10 ●●●●● patch | view | raw | blame | history
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.
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);