/* * ============================================================================ * * Copyright (C) 2011 - 2013 Talend Inc. - www.talend.com * * This source code is available under agreement available at * %InstallDIR%\license.txt * * You should have received a copy of the agreement * along with this program; if not, write to Talend SA * 9 rue Pages 92150 Suresnes, France * * ============================================================================ */ package org.talend.esb.auxiliary.storage.rest.security; import java.io.IOException; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.UnsupportedCallbackException; import org.apache.wss4j.common.ext.WSPasswordCallback; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class WSPasswordCallbackHandler implements CallbackHandler { private static final transient Logger LOG = LoggerFactory.getLogger(WSPasswordCallbackHandler.class); private final String user; private final String pass; public WSPasswordCallbackHandler(String username, String password) { user = username; pass = password; } @Override public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { if (user == null) { LOG.debug("No user was specified in the WSPasswordCallbackHandler"); return; } for (Callback callback : callbacks) { if (callback instanceof WSPasswordCallback) { WSPasswordCallback pc = (WSPasswordCallback) callback; if (user.equals(pc.getIdentifier())) { pc.setPassword(pass); break; } } } } }