diff options
author | James Moger <james.moger@gitblit.com> | 2015-05-27 05:50:02 -0600 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2015-05-27 05:50:02 -0600 |
commit | 0533ce7178d72797d5265f93b11d2823be326d5d (patch) | |
tree | 54fdfceca11ffbac84afdfe64146048035c9b5bc /src/main/java/com/gitblit/manager | |
parent | 423c8704165370d1785fd5ef956e8e4bf0952982 (diff) | |
parent | e97c01c140841667b1fa50a9ffa41bb60952e4ec (diff) | |
download | gitblit-0533ce7178d72797d5265f93b11d2823be326d5d.tar.gz gitblit-0533ce7178d72797d5265f93b11d2823be326d5d.zip |
Merged #255 "Invalid kerberos patches, works now and with a test."
Diffstat (limited to 'src/main/java/com/gitblit/manager')
3 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/com/gitblit/manager/AuthenticationManager.java b/src/main/java/com/gitblit/manager/AuthenticationManager.java index cbf0a1bd..38e45a6f 100644 --- a/src/main/java/com/gitblit/manager/AuthenticationManager.java +++ b/src/main/java/com/gitblit/manager/AuthenticationManager.java @@ -374,6 +374,35 @@ public class AuthenticationManager implements IAuthenticationManager { /** + * Return the UserModel for already authenticated user. + * + * This implementation assumes that the authentication has already take place + * (e.g. SSHDaemon) and that this is a validation/verification of the user. + * + * @param username + * @return a user object or null + */ + @Override + public UserModel authenticate(String username) { + if (username != null) { + if (!StringUtils.isEmpty(username)) { + UserModel user = userManager.getUserModel(username); + if (user != null) { + // existing user + logger.debug(MessageFormat.format("{0} authenticated externally", user.username)); + return validateAuthentication(user, AuthenticationType.CONTAINER); + } + logger.warn(MessageFormat.format("Failed to find UserModel for {0} during external authentication", + username)); + } + } else { + logger.warn("Empty user passed to AuthenticationManager.authenticate!"); + } + return null; + } + + + /** * This method allows the authentication manager to reject authentication * attempts. It is called after the username/secret have been verified to * ensure that the authentication technique has been logged. diff --git a/src/main/java/com/gitblit/manager/GitblitManager.java b/src/main/java/com/gitblit/manager/GitblitManager.java index deaa5347..8d25b3f5 100644 --- a/src/main/java/com/gitblit/manager/GitblitManager.java +++ b/src/main/java/com/gitblit/manager/GitblitManager.java @@ -662,6 +662,11 @@ public class GitblitManager implements IGitblit { } @Override + public UserModel authenticate(String username) { + return authenticationManager.authenticate(username); + } + + @Override public UserModel authenticate(HttpServletRequest httpRequest, boolean requiresCertificate) { UserModel user = authenticationManager.authenticate(httpRequest, requiresCertificate); if (user == null) { diff --git a/src/main/java/com/gitblit/manager/IAuthenticationManager.java b/src/main/java/com/gitblit/manager/IAuthenticationManager.java index d48ec534..c81092b9 100644 --- a/src/main/java/com/gitblit/manager/IAuthenticationManager.java +++ b/src/main/java/com/gitblit/manager/IAuthenticationManager.java @@ -71,6 +71,16 @@ public interface IAuthenticationManager extends IManager { UserModel authenticate(String username, char[] password); /** + * Return the UserModel for already authenticated user. + * + * @see IUserService.authenticate(String, char[]) + * @param username + * @return a user object or null + * @since 1.7.0 + */ + UserModel authenticate(String username); + + /** * Returns the Gitlbit cookie in the request. * * @param request |