[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Reading remote files through authenticating proxy



Thanks John.  The following code worked:

    System.setProperty("http.proxyHost", "myproxyhost.com");
    System.setProperty("http.proxyPort", "8080");
    Authenticator.setDefault(new Authenticator()
    {
        public PasswordAuthentication getPasswordAuthentication()
        {
            return new PasswordAuthentication("myusername",
"mypassword".toCharArray());
        }
    });
    NetcdfFile file =
        new
DODSNetcdfFile("http://www.cdc.noaa.gov/cgi-bin/nph-nc/Datasets/ncep.reanaly
sis/pressure/uwnd.1992.nc", null);

Note that I had to explicitly use the DODSNetcdfFile() constructor.  When I
tried using NetcdfFile.open(<url>) the code seems to use the httpclient
libraries and hence does not connect.  I thought that if I passed a DODS URL
to the NetcdfFile.open() method, it would automatically recognise a DODS url
and construct a DODSNetcdfFile in the background?

Regards, Jon


> -----Original Message-----
> From: address@hidden 
> [mailto:address@hidden] On Behalf Of John Caron
> Sent: 10 October 2005 17:43
> To: Jon Blower
> Cc: address@hidden; address@hidden
> Subject: Re: Reading remote files through authenticating proxy
> 
> 
> 
> Jon Blower wrote:
> > Hi all,
> > 
> > Does anyone know how (using the Java NetCDF libs) I can 
> read a remote 
> > NetCDF or OpenDAP/DODS file through an authenticating proxy server 
> > using Basic authentication?
> > 
> > Thanks, Jon
> > 
> > --------------------------------------------------------------
> > Dr Jon Blower              Tel: +44 118 378 5213 (direct line)
> > Technical Director         Tel: +44 118 378 8741 (ESSC)
> > Reading e-Science Centre   Fax: +44 118 378 6413
> > ESSC                       Email: address@hidden
> > University of Reading
> > 3 Earley Gate
> > Reading RG6 6AL, UK
> > --------------------------------------------------------------
> 
> 
> Do this through the java.net library, eg:
> 
>     java.net.Authenticator.setDefault( new 
> SimpleAuthenticator(name, pass));
> 
> public class SimpleAuthenticator
>    extends 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());
>    }
> }
> 
> 
> You can google Authenticator.setDefault, eg:
> 
>   http://www.javaworld.com/javaworld/javatips/jw-javatip46.html
> 
> I should caution that at some point, netcdf-java may switch 
> to using apache commons httpclient library when accessing 
> OpenDAP. That uses a slightly different mechanism for 
> authentication, but it wont be hard to switch, if and when 
> that happens. 
> 
>