Top Description Fields Constructors Methods
org.eclipse.jgit.internal.transport.sshd.pkcs11

public Class SecurityCallback

extends Object
implements CallbackHandler
Class Inheritance
All Implemented Interfaces
javax.security.auth.callback.CallbackHandler
Static Imports
java.text.MessageFormat.format, org.apache.sshd.core.CoreModuleProperties.PASSWORD_PROMPTS

A bridge to the JGit CredentialsProvider.

Field Summary

Modifier and TypeField and Description
private int
private CredentialsProvider
private static final Logger
private KeyPasswordProvider
private final URIish

Constructor Summary

AccessConstructor and Description
public
SecurityCallback(URIish
URIish identifying the item the interaction is about
uri
)

Creates a new SecurityCallback.

Method Summary

Modifier and TypeMethod and Description
private String
getText(int messageType, String text)

public void
handle(Callback[]
an array of Callback objects provided by an underlying security service which contains the information requested to be retrieved or displayed.
callbacks
)

Implements javax.security.auth.callback.CallbackHandler.handle.

Retrieve or display the information requested in the provided Callbacks.

private void
handleGeneral(Callback[] callbacks)

public int

Returns:

the number of PIN prompts to try to log-in to the token
init
(SessionContext
SessionContext of the keystore access
session
)

Initializes this SecurityCallback for the given session.

public boolean

Returns:

whether to try once more
passwordTried
(Exception
an Exception that may have occurred, or null on success
error
)

Tells this SecurityCallback that an attempt to load something from the key store has been made.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

attemptsback to summary
private int attempts
credentialsProviderback to summary
private CredentialsProvider credentialsProvider
LOGback to summary
private static final Logger LOG
passwordProviderback to summary
private KeyPasswordProvider passwordProvider
uriback to summary
private final URIish uri

Constructor Detail

SecurityCallbackback to summary
public SecurityCallback(URIish uri)

Creates a new SecurityCallback.

Parameters
uri:URIish

URIish identifying the item the interaction is about

Method Detail

getTextback to summary
private String getText(int messageType, String text)
handleback to summary
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException

Implements javax.security.auth.callback.CallbackHandler.handle.

Doc from javax.security.auth.callback.CallbackHandler.handle.

Retrieve or display the information requested in the provided Callbacks.

The handle method implementation checks the instance(s) of the Callback object(s) passed in to retrieve or display the requested information. The following example is provided to help demonstrate what an handle method implementation might look like. This example code is for guidance only. Many details, including proper error handling, are left out for simplicity.

public void handle(Callback[] callbacks)
throws IOException, UnsupportedCallbackException {

  for (int i = 0; i < callbacks.length; i++) {
     if (callbacks[i] instanceof TextOutputCallback) {

         // display the message according to the specified type
         TextOutputCallback toc = (TextOutputCallback)callbacks[i];
         switch (toc.getMessageType()) {
         case TextOutputCallback.INFORMATION:
             System.out.println(toc.getMessage());
             break;
         case TextOutputCallback.ERROR:
             System.out.println("ERROR: " + toc.getMessage());
             break;
         case TextOutputCallback.WARNING:
             System.out.println("WARNING: " + toc.getMessage());
             break;
         default:
             throw new IOException("Unsupported message type: " +
                                 toc.getMessageType());
         }

     } else if (callbacks[i] instanceof NameCallback) {

         // prompt the user for a username
         NameCallback nc = (NameCallback)callbacks[i];

         // ignore the provided defaultName
         System.err.print(nc.getPrompt());
         System.err.flush();
         nc.setName((new BufferedReader
                 (new InputStreamReader(System.in))).readLine());

     } else if (callbacks[i] instanceof PasswordCallback) {

         // prompt the user for sensitive information
         PasswordCallback pc = (PasswordCallback)callbacks[i];
         System.err.print(pc.getPrompt());
         System.err.flush();
         pc.setPassword(readPassword(System.in));

     } else {
         throw new UnsupportedCallbackException
                 (callbacks[i], "Unrecognized Callback");
     }
  }
}

// Reads user password from given input stream.
private char[] readPassword(InputStream in) throws IOException {
   // insert code to read a user password from the input stream
}
Parameters
callbacks:Callback[]

an array of Callback objects provided by an underlying security service which contains the information requested to be retrieved or displayed.

Annotations
@Override
Exceptions
IOException:
if an input or output error occurs.
UnsupportedCallbackException:
if the implementation of this method does not support one or more of the Callbacks specified in the callbacks parameter.
handleGeneralback to summary
private void handleGeneral(Callback[] callbacks) throws UnsupportedCallbackException
initback to summary
public int init(SessionContext session)

Initializes this SecurityCallback for the given session.

Parameters
session:SessionContext

SessionContext of the keystore access

Returns:int

the number of PIN prompts to try to log-in to the token

passwordTriedback to summary
public boolean passwordTried(Exception error) throws IOException, GeneralSecurityException

Tells this SecurityCallback that an attempt to load something from the key store has been made.

Parameters
error:Exception

an Exception that may have occurred, or null on success

Returns:boolean

whether to try once more

Exceptions
IOException:
on errors
GeneralSecurityException:
on errors