@Override
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
for (Callback callback : callbacks) {
LOG.trace("Callback {}", callback);
if (callback instanceof PasswordCallback) {
PasswordCallback pc = (PasswordCallback) callback;
LOG.trace("Setting password on callback {}", pc);
pc.setPassword(principal.getPassword().toCharArray());
} else if (callback instanceof NameCallback) {
NameCallback nc = (NameCallback) callback;
LOG.trace("Setting username on callback {}", nc);
nc.setName(principal.getName());
}