}
@Override
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
if (callbacks[0] instanceof WSPasswordCallback) {
WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
if (pc.getUsage() == WSPasswordCallback.Usage.DECRYPT
|| pc.getUsage() == WSPasswordCallback.Usage.SIGNATURE
|| pc.getUsage() == WSPasswordCallback.Usage.USERNAME_TOKEN
) {
pc.setPassword(username);
} else if (pc.getUsage() == WSPasswordCallback.Usage.SECRET_KEY
|| pc.getUsage() == WSPasswordCallback.Usage.SECURITY_CONTEXT_TOKEN) {
pc.setKey(secret);
} else if (pc.getUsage() == WSPasswordCallback.Usage.PASSWORD_ENCRYPTOR_PASSWORD) {
pc.setPassword("this-is-a-secret");
} else {
throw new UnsupportedCallbackException(pc, "Unrecognized CallbackHandlerImpl");
}
}
}