es.mityc.firmaJava.ts.AuthenticatorProxyCredentials.java Source code

Java tutorial

Introduction

Here is the source code for es.mityc.firmaJava.ts.AuthenticatorProxyCredentials.java

Source

/**
 * LICENCIA LGPL:
 * 
 * Esta librera es Software Libre; Usted puede redistribuirlo y/o modificarlo
 * bajo los trminos de la GNU Lesser General Public License (LGPL)
 * tal y como ha sido publicada por la Free Software Foundation; o
 * bien la versin 2.1 de la Licencia, o (a su eleccin) cualquier versin posterior.
 * 
 * Esta librera se distribuye con la esperanza de que sea til, pero SIN NINGUNA
 * GARANT?A; tampoco las implcitas garantas de MERCANTILIDAD o ADECUACIN A UN
 * PROPSITO PARTICULAR. Consulte la GNU Lesser General Public License (LGPL) para ms
 * detalles
 * 
 * Usted debe recibir una copia de la GNU Lesser General Public License (LGPL)
 * junto con esta librera; si no es as, escriba a la Free Software Foundation Inc.
 * 51 Franklin Street, 5 Piso, Boston, MA 02110-1301, USA o consulte
 * <http://www.gnu.org/licenses/>.
 *
 * Copyright 2008 Ministerio de Industria, Turismo y Comercio
 * 
 */
package es.mityc.firmaJava.ts;

import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.net.Authenticator.RequestorType;

import org.apache.commons.httpclient.NTCredentials;

/**
 * Credenciales de autenticacin para conectar el sistema de autenticacin de Java con el sistema de credenciales de la librera
 * httpclient.
 *
 * @author  Ministerio de Industria, Turismo y Comercio
 * @version 0.9 beta
 */
public class AuthenticatorProxyCredentials extends NTCredentials {

    protected PasswordAuthentication pa = null;

    public AuthenticatorProxyCredentials(String host, String domain) {
        super("username", "password", host, domain);
    }

    private void refreshAuthenticator() {
        String proxyHost = System.getProperty("http.proxyHost");
        int proxyPort = 80;
        try {
            proxyPort = Integer.parseInt(System.getProperty("http.proxyPort"));
        } catch (NumberFormatException ex) {
        }
        try {
            pa = Authenticator.requestPasswordAuthentication(proxyHost, null, proxyPort, "HTTP", "", "http", null,
                    RequestorType.PROXY);
        } catch (SecurityException ex) {
            pa = null;
        }
    }

    @Override
    public String getUserName() {
        refreshAuthenticator();
        if (pa == null)
            return super.getUserName();
        return pa.getUserName();
    }

    @Override
    public String getPassword() {
        if (pa == null)
            refreshAuthenticator();
        if (pa == null)
            return super.getPassword();
        return new String(pa.getPassword());
    }

}