From a9be3d2fb5e69ce3c9ac7b3963853cb338a0ca10 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 19:01:30 -0400
Subject: [PATCH] Add hostname and ssh repo url methodso to SshCommand
---
src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java | 25 ++++++++++++-------------
1 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java b/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java
index 7d6066c..48e5aa2 100644
--- a/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java
+++ b/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java
@@ -34,23 +34,23 @@
import com.google.common.base.Preconditions;
/**
- *
+ *
* @author Eric Myrhe
- *
+ *
*/
public class CachingPublicKeyAuthenticator implements PublickeyAuthenticator,
SessionListener {
protected final Logger log = LoggerFactory.getLogger(getClass());
- protected final IKeyManager keyManager;
+ protected final IPublicKeyManager keyManager;
protected final IAuthenticationManager authManager;
private final Map<ServerSession, Map<PublicKey, Boolean>> cache =
new ConcurrentHashMap<ServerSession, Map<PublicKey, Boolean>>();
- public CachingPublicKeyAuthenticator(IKeyManager keyManager,
+ public CachingPublicKeyAuthenticator(IPublicKeyManager keyManager,
IAuthenticationManager authManager) {
this.keyManager = keyManager;
this.authManager = authManager;
@@ -73,44 +73,43 @@
return result;
}
- protected boolean doAuthenticate(String username, PublicKey suppliedKey,
+ private boolean doAuthenticate(String username, PublicKey suppliedKey,
ServerSession session) {
SshDaemonClient client = session.getAttribute(SshDaemonClient.KEY);
Preconditions.checkState(client.getUser() == null);
username = username.toLowerCase(Locale.US);
- List<PublicKey> keys = keyManager.getKeys(username);
+ List<SshKey> keys = keyManager.getKeys(username);
if (keys == null || keys.isEmpty()) {
log.info("{} has not added any public keys for ssh authentication",
username);
return false;
}
- for (PublicKey key : keys) {
+ for (SshKey key : keys) {
if (key.equals(suppliedKey)) {
UserModel user = authManager.authenticate(username, key);
if (user != null) {
client.setUser(user);
+ client.setKey(key);
return true;
}
}
}
- log.warn(
- "could not authenticate {} for SSH using the supplied public key",
+ log.warn("could not authenticate {} for SSH using the supplied public key",
username);
return false;
}
- public IKeyManager getKeyManager() {
- return keyManager;
- }
-
+ @Override
public void sessionCreated(Session session) {
}
+ @Override
public void sessionEvent(Session sesssion, Event event) {
}
+ @Override
public void sessionClosed(Session session) {
cache.remove(session);
}
--
Gitblit v1.9.1