ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Donovan <marcdonovan...@yahoo.com>
Subject password for proxy, etc
Date Mon, 29 Sep 2003 17:05:40 GMT
I have developed an ant task that I would like to
donate to the project. It allows ant to tunnel through
a proxy server that requires a password. I've pasted
the code below, and I can send an attachment if it
gets mangled.

Enjoy

/*
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 2001-2002 The Apache Software
Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms,
with or without
 * modification, are permitted provided that the
following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the
above copyright
 * notice, this list of conditions and the following
disclaimer.
 *
 * 2. Redistributions in binary form must reproduce
the above copyright
 * notice, this list of conditions and the following
disclaimer in
 * the documentation and/or other materials provided
with the
 * distribution.
 *
 * 3. The end-user documentation included with the
redistribution, if
 * any, must include the following acknowlegement:
 * "This product includes software developed by the
 * Apache Software Foundation
(http://www.apache.org/)."
 * Alternately, this acknowlegement may appear in the
software itself,
 * if and wherever such third-party acknowlegements
normally appear.
 *
 * 4. The names "Ant" and "Apache Software
 * Foundation" must not be used to endorse or promote
products derived
 * from this software without prior written
permission. For written
 * permission, please contact apache@apache.org.
 *
 * 5. Products derived from this software may not be
called "Apache"
 * nor may "Apache" appear in their names without
prior written
 * permission of the Apache Group.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY
EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE
FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF
 * SUCH DAMAGE.
 *
====================================================================
 *
 * This software consists of voluntary contributions
made by many
 * individuals on behalf of the Apache Software
Foundation.  For more
 * information on the Apache Software Foundation,
please see
 * <http://www.apache.org/>.
 */

package org.apache.tools.ant.taskdefs.optional.net;

import java.net.PasswordAuthentication;
import java.net.Authenticator;
import org.apache.tools.ant.*;

/**
 * Sets the java.net.Authenticator using the supplied
username and password.
 * This is useful for many corporate environments that
protect their 
 * proxies with passwords
 * <p> 
 * Examples
 * <pre>&lt;setAuth user="scott"
password="tiger"/&gt;</pre>
 * 
 *
 *
 * @author Marc Donovan
  *@since       Ant 1.5
 * @ant.task
 */
public class SetAuth extends Task {

    /**
     * username
     */
    protected String user = null;

    /**
     * password
     */
    protected String password = null;

    /**
     * 
     * @param user username 
     */
    public void setUser(String user) {
        this.user = user;
    }

    /**
     * 
     * @param password password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * list out what is going on
     */ 
    private void traceSettingInfo() {
        log("Setting user/password to " 
                + user + "/" + password,
                Project.MSG_VERBOSE);
    }


    /**
     * The SimpleAuthenticator is an implementation of
java.net.Authenticator
     * It return the username/password for an auth
challenge.
     */
    public class SimpleAuthenticator extends
java.net.Authenticator {
        private String username, password;
        
        public SimpleAuthenticator(String username,
String password) {
            this.username = username;
            this.password = password;
        }
   
        protected PasswordAuthentication
getPasswordAuthentication() {
            return new PasswordAuthentication
(username, password.toCharArray());
        }
    }



    /**
     * sets the Authenticator for the JVM using the
supplied user/password.
     *
     */
    public void createAuthenticator() {
        Authenticator.setDefault (new
SimpleAuthenticator (user, password));
    }


    /**
     * Does the work.
     *
     * @exception BuildException thrown in
unrecoverable error.
     */
    public void execute() throws BuildException {
        super.execute();
        createAuthenticator();
    }

}



__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message