You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Chris Brown <br...@reflexe.fr> on 2003/04/10 17:34:23 UTC
Unmentioned dependencies
I didn't see any mention on the HttpClient website or in any other docs
about dependencies in HttpClient upon JCE (Java Cryptography Extensions) for
using NTLM.
I discovered (via a NoClassDefFound error) that the following classes are
required if you use NTCredentials :
javax.crypto.BadPaddingException;
javax.crypto.Cipher;
javax.crypto.IllegalBlockSizeException;
javax.crypto.NoSuchPaddingException;
javax.crypto.spec.SecretKeySpec;
Could you mention in the docs / on the site that JCE or JDK 1.4 (including
JCE) is required for NTLM authentification (so that others don't get stuck)?
Thanks,
Chris
Re: Parsing "Last-Modified" HTTP response header
Posted by Chris Brown <br...@reflexe.fr>.
Well, I'm an impatient chap... didn't find the code, so I coded it myself.
Here as a reference for anyone else (maybe worth including in the API, once
it's been verified). Careful with line breaks...
____________________________________________________________
/**
* Date format pattern used to parse HTTP date headers in RFC 1123 format.
* <p>Dates may be formatted using the following patterns (listed in order
* of preference):</p>
* <ol>
* <li><code>RFC 1123 format</code> (recommended)</li>
* <li>{@link #PATTERN_RFC1036 RFC 1036 format) (deprecated)</li>
* <li>{@link #PATTERN_ASCTIME ANSI C asctime() format} (deprecated)</li>
* </ol>
*/
public static final String PATTERN_RFC1123 =
"EEE, dd MMM yyyy HH:mm:ss zzz";
/**
* Date format pattern used to parse HTTP date headers in RFC 1036 format.
* <p>Dates may be formatted using the following patterns (listed in order
* of preference):</p>
* <ol>
* <li>{@link #PATTERN_RFC1123 RFC 1123 format} (recommended)</li>
* <li><code>RFC 1036 format</code> (deprecated)</li>
* <li>{@link #PATTERN_ASCTIME ANSI C asctime() format} (deprecated)</li>
* </ol>
*/
public static final String PATTERN_RFC1036 =
"EEEE, dd-MMM-yy HH:mm:ss zzz";
/**
* Date format pattern used to parse HTTP date headers in ANSI C
<code>asctime()</code> format.
* <p>Dates may be formatted using the following patterns (listed in order
* of preference):</p>
* <ol>
* <li>{@link #PATTERN_RFC1123 RFC 1123 format} (recommended)</li>
* <li>{@link #PATTERN_RFC1036 RFC 1036 format) (deprecated)</li>
* <li><code>ANSI C asctime() format</code> (deprecated)</li>
* </ol>
*/
public static final String PATTERN_ASCTIME =
"EEE MMM d HH:mm:ss yyyy";
/**
* Parses a HTTP header date value.
*
* @param dateHeaderValue the date header value to parse.
* @return the parsed date.
*
* @throws ParseException if the date could not be parsed according to the
* one of the following formats (in order of preference):
* {@link #PATTERN_RFC1123 RFC 1123},
* {@link #PATTERN_RFC1036 RFC 1036},
* {@link #PATTERN_ASCTIME ANSI C asctime() format}.
*
* @author Christopher Brown
*/
public static Date parseDateHeader(String dateHeaderValue) throws
ParseException
{
Date date = null;
if (dateHeaderValue != null)
{
SimpleDateFormat dateParser = new SimpleDateFormat(PATTERN_RFC1123,
Locale.US);
dateParser.setTimeZone(TimeZone.getTimeZone("GMT"));
try
{
date = dateParser.parse(dateHeaderValue);
}
catch (ParseException exRFC1123)
{
dateParser.applyPattern(PATTERN_RFC1036);
try
{
date = dateParser.parse(dateHeaderValue);
}
catch (ParseException exRFC1036)
{
dateParser.applyPattern(PATTERN_ASCTIME);
date = dateParser.parse(dateHeaderValue);
}
}
}
return date;
}
Parsing "Last-Modified" HTTP response header
Posted by Chris Brown <br...@reflexe.fr>.
Hello,
Is there any built-in way in the Http Client API to obtain the value of the
"Last-Modified" header as a number of milliseconds or a Date (already
parsed), just like java.net.URLConnection.getLastModified() ?
Surely there's a method, or someone's already done that... Or do I have to
figure it out myself?! ;-)
Thanks,
Chris
Re: Unmentioned dependencies
Posted by Adrian Sutton <ad...@intencha.com>.
Hi Chris,
I'll provide a patch for the authentication docs tonight unless someone
else beats me to it.
Thanks for pointing it out.
Regards,
Adrian Sutton.
On Friday, April 11, 2003, at 01:34 AM, Chris Brown wrote:
>
> I didn't see any mention on the HttpClient website or in any other docs
> about dependencies in HttpClient upon JCE (Java Cryptography
> Extensions) for
> using NTLM.
>
> I discovered (via a NoClassDefFound error) that the following classes
> are
> required if you use NTCredentials :
>
> javax.crypto.BadPaddingException;
> javax.crypto.Cipher;
> javax.crypto.IllegalBlockSizeException;
> javax.crypto.NoSuchPaddingException;
> javax.crypto.spec.SecretKeySpec;
>
> Could you mention in the docs / on the site that JCE or JDK 1.4
> (including
> JCE) is required for NTLM authentification (so that others don't get
> stuck)?
>
> Thanks,
> Chris
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> commons-httpclient-dev-help@jakarta.apache.org
>