[netcdf-java] OPeNDAP authentication using nj22

John Caron caron at unidata.ucar.edu
Fri Dec 14 15:14:27 MST 2007


Have you seen this doc:

  
http://www.unidata.ucar.edu/software/netcdf-java/reference/HTTPauthentication.html

??

If so, then I probably need to add more info to it. Let me know and I 
can look at it next week.

Jon Blower wrote:
> Further information on this: I can connect successfully to the server
> in question using the toolsUI-2.2.22.jar, but I still can't via my own
> application.  I've had a quick look at the code for HttpClientManager
> and HTTPRandomAccessFile and perhaps there is a call to
> setDoAuthentication() missing?
>
> Cheers, Jon
>
> On Dec 13, 2007 9:12 PM, Jon Blower <jdb at mail.nerc-essc.ac.uk> wrote:
>   
>> Thanks John, and everyone else who replied.
>>
>> I'm now experimenting with trying to get OPeNDAP authentication
>> working in version 2.2.22.  I have a very simple main() method that
>> simply tries to open a NetcdfDataset from an OPeNDAP URL, where the
>> OPeNDAP server requires authentication:
>>
>>     public static void main(String[] args) throws Exception
>>     {
>>         HttpClientManager.init(new CredentialsProvider(){
>>             public Credentials getCredentials(AuthScheme scheme,
>>                        String host, int port, boolean proxy)
>>                        throws CredentialsNotAvailableException
>>             {
>>                 System.out.println("Called Credentials Provider!");
>>                 throw new CredentialsNotAvailableException();
>>             }
>>         }, null);
>>
>>         NetcdfDataset nc = NetcdfDataset.openDataset("http://myurl");
>>         nc.close();
>>     }
>>
>> When I run this I get an error message:
>>
>>     Server does not support byte Ranges
>>     at ucar.unidata.io.http.HTTPRandomAccessFile.<init>(HTTPRandomAccessFile.java:99)
>>
>> which, having delved through the nj22 code, actually just means that
>> the call to get the value of the Accept-Ranges header does not return
>> what is expected.  I assume that the real reason that the call fails
>> is that the server requires authentication.  The simple
>> CredentialsProvider that I have written in the above code never gets
>> called.
>>
>> Could anyone please shed some light on this, or perhaps provide a code
>> snippet of the right way to go about this?
>>
>> Thanks very much,
>> Jon
>>
>>
>> On Nov 26, 2007 7:24 PM, John Caron <caron at unidata.ucar.edu> wrote:
>>     
>>> Hi Jon:
>>>
>>> ucar.nc2.dataset.HttpClientManager is in 2.2.22 release. I beleive it was added at 2.2.19.
>>>
>>>
>>> Jon Blower wrote:
>>>       
>>>> Hi all,
>>>>
>>>> I'm trying to read data from an authenticated OPeNDAP server.  I've
>>>> found the page http://www.unidata.ucar.edu/software/netcdf-java/reference/HTTPauthentication.html,
>>>> which says that I should create a CredentialsProvider and register it
>>>> using ucar.nc2.dataset.HttpClientManager.init().  However, there is no
>>>> class called HttpClientManager in the ucar.nc2.dataset package, or
>>>> indeed anywhere in the nj22 distribution that I can see.
>>>>
>>>> What is the best way to read data from authenticated OPeNDAP servers?
>>>> I am using nj22 version 2.2.16.
>>>>
>>>> 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: jdb at mail.nerc-essc.ac.uk
>> University of Reading
>> 3 Earley Gate
>> Reading RG6 6AL, UK
>> --------------------------------------------------------------
>>
>>     
>
>
>
>   


More information about the netcdf-java mailing list