From 8d2caa7e81fcd995f0a5c07fa4454ae2f8e86e6e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 01 May 2014 14:31:18 -0400
Subject: [PATCH] Show open milestone progress and change milestones list layout
---
src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java | 38 +++++++++++++++++---------------------
1 files changed, 17 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java b/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java
index 0120fa6..e804a0d 100644
--- a/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java
+++ b/src/main/java/com/gitblit/transport/ssh/CachingPublicKeyAuthenticator.java
@@ -34,12 +34,10 @@
import com.google.common.base.Preconditions;
/**
- *
- * @author Eric Myrhe
+ * Authenticates an SSH session against a public key.
*
*/
-public class CachingPublicKeyAuthenticator implements PublickeyAuthenticator,
- SessionListener {
+public class CachingPublicKeyAuthenticator implements PublickeyAuthenticator, SessionListener {
protected final Logger log = LoggerFactory.getLogger(getClass());
@@ -47,18 +45,15 @@
protected final IAuthenticationManager authManager;
- private final Map<ServerSession, Map<PublicKey, Boolean>> cache =
- new ConcurrentHashMap<ServerSession, Map<PublicKey, Boolean>>();
+ private final Map<ServerSession, Map<PublicKey, Boolean>> cache = new ConcurrentHashMap<ServerSession, Map<PublicKey, Boolean>>();
- public CachingPublicKeyAuthenticator(IPublicKeyManager keyManager,
- IAuthenticationManager authManager) {
+ public CachingPublicKeyAuthenticator(IPublicKeyManager keyManager, IAuthenticationManager authManager) {
this.keyManager = keyManager;
this.authManager = authManager;
}
@Override
- public boolean authenticate(String username, PublicKey key,
- ServerSession session) {
+ public boolean authenticate(String username, PublicKey key, ServerSession session) {
Map<PublicKey, Boolean> map = cache.get(session);
if (map == null) {
map = new HashMap<PublicKey, Boolean>();
@@ -73,31 +68,32 @@
return result;
}
- protected boolean doAuthenticate(String username, PublicKey suppliedKey,
- ServerSession session) {
+ 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);
- if (keys == null || keys.isEmpty()) {
- log.info("{} has not added any public keys for ssh authentication",
- username);
+ List<SshKey> keys = keyManager.getKeys(username);
+ if (keys.isEmpty()) {
+ log.info("{} has not added any public keys for ssh authentication", username);
return false;
}
- for (PublicKey key : keys) {
- if (key.equals(suppliedKey)) {
+ SshKey pk = new SshKey(suppliedKey);
+ log.debug("auth supplied {}", pk.getFingerprint());
+
+ for (SshKey key : keys) {
+ log.debug("auth compare to {}", key.getFingerprint());
+ if (key.getPublicKey().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",
- username);
+ log.warn("could not authenticate {} for SSH using the supplied public key", username);
return false;
}
--
Gitblit v1.9.1