public class SshTestGitServer extends Object
Supports only a single repository. Authenticates only the given test user against his given test public key. Supports fetch and push.
Modifier and Type | Field and Description |
---|---|
protected List<KeyPair> |
hostKeys |
protected Repository |
repository |
protected org.apache.sshd.server.SshServer |
server |
protected PublicKey |
testKey |
protected String |
testUser |
Constructor and Description |
---|
SshTestGitServer(String testUser,
Path testKey,
Repository repository,
byte[] hostKey)
Creates a ssh git test server.
|
Modifier and Type | Method and Description |
---|---|
void |
addHostKey(Path key,
boolean inFront)
Adds an additional host key to the server.
|
protected void |
configureAuthentication()
Configures the authentication mechanisms of this test server.
|
protected void |
configureShell()
Configures shell access for the test server.
|
protected List<org.apache.sshd.common.NamedFactory<org.apache.sshd.server.command.Command>> |
configureSubsystems()
Configures the test server's subsystems (sftp, scp).
|
void |
enableKeyboardInteractiveAuthentication()
Enable keyboard-interactive authentication.
|
void |
enablePasswordAuthentication()
Enable password authentication.
|
void |
setPreamble(String... lines)
Sets the lines the server sends before its server identification in the
initial protocol version exchange.
|
void |
setTestUserPublicKey(Path key)
Sets the test user's public key on the server.
|
int |
start()
Starts the test server, listening on a random port.
|
void |
stop()
Stops the test server.
|
@NonNull protected final Repository repository
protected final org.apache.sshd.server.SshServer server
public SshTestGitServer(@NonNull String testUser, @NonNull Path testKey, @NonNull Repository repository, @NonNull byte[] hostKey) throws IOException, GeneralSecurityException
testUser
- user name of the test usertestKey
- private key file of the test user; the server will
only user the public key from itrepository
- to servehostKey
- the unencrypted private key to use as host keyIOException
GeneralSecurityException
protected void configureAuthentication()
@NonNull protected List<org.apache.sshd.common.NamedFactory<org.apache.sshd.server.command.Command>> configureSubsystems()
protected void configureShell()
public void addHostKey(@NonNull Path key, boolean inFront) throws IOException, GeneralSecurityException
key
- path to the private key file; should not be encryptedinFront
- whether to add the new key before other existing keysIOException
- if the file denoted by the Path
key
cannot be
readGeneralSecurityException
- if the key contained in the file cannot be readpublic void enablePasswordAuthentication()
public void enableKeyboardInteractiveAuthentication()
public int start() throws IOException
IOException
public void stop() throws IOException
IOException
public void setTestUserPublicKey(Path key) throws IOException, GeneralSecurityException
key
- to setIOException
- if the file cannot be readGeneralSecurityException
- if the public key cannot be extracted from the filepublic void setPreamble(String... lines)
lines
- to sendCopyright © 2019 Eclipse JGit Project. All rights reserved.