summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <david.pursehouse@sonymobile.com>2015-04-07 19:23:11 +0900
committerDavid Pursehouse <david.pursehouse@sonymobile.com>2015-04-07 19:23:22 +0900
commitc7f58ccbd88c08f3e64c4753f5aa8e577288d204 (patch)
treebd7b1c03f00351da8d1ebd878d528277ff198f62
parentc41edaa2c133079ccdd02d045b0af1fcf897e3be (diff)
Revert "Revert "SSH: Simplify CachingPublicKeyAuthenticator implementation""
This reverts commit 48bf33b2ebf58d501d5745a64a76d7b47c85c407. Change-Id: I145d159327796ee524e05cc2019bb355f245a94b
-rw-r--r--gerrit-sshd/src/main/java/com/google/gerrit/sshd/CachingPublicKeyAuthenticator.java50
1 files changed, 3 insertions, 47 deletions
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/CachingPublicKeyAuthenticator.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/CachingPublicKeyAuthenticator.java
index f315cff3b8..0471af8d44 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/CachingPublicKeyAuthenticator.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/CachingPublicKeyAuthenticator.java
@@ -17,56 +17,12 @@ package com.google.gerrit.sshd;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import org.apache.sshd.common.Session;
-import org.apache.sshd.common.SessionListener;
-import org.apache.sshd.server.PublickeyAuthenticator;
-import org.apache.sshd.server.session.ServerSession;
-
-import java.security.PublicKey;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
@Singleton
-public class CachingPublicKeyAuthenticator implements PublickeyAuthenticator,
- SessionListener {
-
- private final PublickeyAuthenticator authenticator;
- private final Map<ServerSession, Map<PublicKey, Boolean>> sessionCache;
+public class CachingPublicKeyAuthenticator
+ extends org.apache.sshd.server.auth.CachingPublicKeyAuthenticator {
@Inject
public CachingPublicKeyAuthenticator(DatabasePubKeyAuth authenticator) {
- this.authenticator = authenticator;
- this.sessionCache = new ConcurrentHashMap<>();
- }
-
- @Override
- public boolean authenticate(String username, PublicKey key,
- ServerSession session) {
- Map<PublicKey, Boolean> m = sessionCache.get(session);
- if (m == null) {
- m = new HashMap<>();
- sessionCache.put(session, m);
- session.addListener(this);
- }
- if (m.containsKey(key)) {
- return m.get(key);
- }
- boolean r = authenticator.authenticate(username, key, session);
- m.put(key, r);
- return r;
- }
-
- @Override
- public void sessionCreated(Session session) {
- }
-
- @Override
- public void sessionEvent(Session sesssion, Event event) {
- }
-
- @Override
- public void sessionClosed(Session session) {
- sessionCache.remove(session);
+ super(authenticator);
}
}