diff options
author | David Pursehouse <david.pursehouse@sonymobile.com> | 2015-04-07 19:23:11 +0900 |
---|---|---|
committer | David Pursehouse <david.pursehouse@sonymobile.com> | 2015-04-07 19:23:22 +0900 |
commit | c7f58ccbd88c08f3e64c4753f5aa8e577288d204 (patch) | |
tree | bd7b1c03f00351da8d1ebd878d528277ff198f62 | |
parent | c41edaa2c133079ccdd02d045b0af1fcf897e3be (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.java | 50 |
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); } } |