summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/manager
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2015-05-27 05:50:02 -0600
committerJames Moger <james.moger@gitblit.com>2015-05-27 05:50:02 -0600
commit0533ce7178d72797d5265f93b11d2823be326d5d (patch)
tree54fdfceca11ffbac84afdfe64146048035c9b5bc /src/main/java/com/gitblit/manager
parent423c8704165370d1785fd5ef956e8e4bf0952982 (diff)
parente97c01c140841667b1fa50a9ffa41bb60952e4ec (diff)
downloadgitblit-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')
-rw-r--r--src/main/java/com/gitblit/manager/AuthenticationManager.java29
-rw-r--r--src/main/java/com/gitblit/manager/GitblitManager.java5
-rw-r--r--src/main/java/com/gitblit/manager/IAuthenticationManager.java10
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