| | |
| | | */ |
| | | package com.gitblit.transport.ssh; |
| | | |
| | | import java.security.PublicKey; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | |
| | | */ |
| | | public class MemoryKeyManager extends IPublicKeyManager { |
| | | |
| | | Map<String, List<PublicKey>> keys; |
| | | Map<String, List<SshKey>> keys; |
| | | |
| | | public MemoryKeyManager() { |
| | | keys = new HashMap<String, List<PublicKey>>(); |
| | | keys = new HashMap<String, List<SshKey>>(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected List<PublicKey> getKeysImpl(String username) { |
| | | protected List<SshKey> getKeysImpl(String username) { |
| | | String id = username.toLowerCase(); |
| | | if (keys.containsKey(id)) { |
| | | return keys.get(id); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean addKey(String username, String data) { |
| | | return false; |
| | | public boolean addKey(String username, SshKey key) { |
| | | String id = username.toLowerCase(); |
| | | if (!keys.containsKey(id)) { |
| | | keys.put(id, new ArrayList<SshKey>()); |
| | | } |
| | | return keys.get(id).add(key); |
| | | } |
| | | |
| | | @Override |
| | | public boolean removeKey(String username, String data) { |
| | | return false; |
| | | public boolean removeKey(String username, SshKey key) { |
| | | String id = username.toLowerCase(); |
| | | if (!keys.containsKey(id)) { |
| | | return false; |
| | | } |
| | | return keys.get(id).remove(key); |
| | | } |
| | | |
| | | @Override |
| | |
| | | String id = username.toLowerCase(); |
| | | keys.remove(id.toLowerCase()); |
| | | return true; |
| | | } |
| | | |
| | | /* Test method for populating the memory key manager */ |
| | | public void addKey(String username, PublicKey key) { |
| | | String id = username.toLowerCase(); |
| | | if (!keys.containsKey(id)) { |
| | | keys.put(id, new ArrayList<PublicKey>()); |
| | | } |
| | | keys.get(id).add(key); |
| | | } |
| | | } |