public interface PublicKeyAuthenticationProvider extends Authenticator
This interface allows you to define a custom public key store for the publickey authentication mechanism. The actual key verification is performed by the mechanism itself and your only requirement is to return a value which indicates whether the key has been authorized by the user for public key access.
The implementation may optionally support addition, removal and listing of
keys. When supported, PublicKeySubsystem
may be used. If not required
the methods should thrown UnsupportedOperationException
.
Modifier and Type | Method and Description |
---|---|
void |
add(SshPublicKey key,
String comment,
Connection con) |
Iterator<SshPublicKeyFile> |
getKeys(Connection con) |
boolean |
isAuthorizedKey(SshPublicKey key,
Connection con)
Check the supplied public key against the users authorized keys.
|
void |
remove(SshPublicKey key,
Connection con) |
boolean isAuthorizedKey(SshPublicKey key, Connection con) throws IOException
Check the supplied public key against the users authorized keys. The
actual verification of the key is performed by the server, you only need
to return a value to indicate whether the key is authorized or not. You
can obtain the username, home directory, group or remote socket address
from the com.sshtools.server.PasswordAuthenticationProvider
instance.
If your authorized key database is kept on the native file system you can
obtain and initialize an instance as follows:
Don't forget to close any file handles and the file system once you've done accessing files.NativeFileSystemProvider nfs = (NativeFileSystemProvider) authenticationProvider .getContext().getFileSystemProvider().newInstance(); nfs.init(sessionid, null, authenticationProvider.getContext());
key
- SshPublicKeycon
- connectionauthenticationProvider
- AuthenticationProviderIOException
Iterator<SshPublicKeyFile> getKeys(Connection con) throws PermissionDeniedException, IOException
PermissionDeniedException
IOException
void remove(SshPublicKey key, Connection con) throws IOException, PermissionDeniedException, SshException
void add(SshPublicKey key, String comment, Connection con) throws IOException, PermissionDeniedException, SshException
Copyright © 2024. All rights reserved.