From b5361179d924eab162e17d7923f60d91cffb2d08 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 18:58:08 -0400
Subject: [PATCH] Extract key manager interface and implement a file-based key manager

---
 src/main/java/com/gitblit/git/RepositoryResolver.java |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/git/RepositoryResolver.java b/src/main/java/com/gitblit/git/RepositoryResolver.java
index 208c1ae..0804819 100644
--- a/src/main/java/com/gitblit/git/RepositoryResolver.java
+++ b/src/main/java/com/gitblit/git/RepositoryResolver.java
@@ -30,6 +30,8 @@
 import com.gitblit.manager.IGitblit;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.UserModel;
+import com.gitblit.transport.git.GitDaemonClient;
+import com.gitblit.transport.ssh.SshSession;
 
 /**
  * Resolves repositories and grants export access.
@@ -67,6 +69,9 @@
 			// git request
 			GitDaemonClient client = (GitDaemonClient) req;
 			client.setRepositoryName(name);
+		} else if (req instanceof SshSession) {
+			SshSession s = (SshSession)req;
+			s.setRepositoryName(name);
 		}
 		return repo;
 	}
@@ -98,6 +103,12 @@
 			if (user == null) {
 				user = UserModel.ANONYMOUS;
 			}
+		} else if (req instanceof SshSession) {
+			SshSession s = (SshSession) req;
+			user = gitblit.authenticate(s);
+			if (user == null) {
+				throw new IOException(String.format("User %s not found",  s.getRemoteUser()));
+			}
 		}
 
 		if (user.canClone(model)) {

--
Gitblit v1.9.1