HTTPClient
Class DefaultAuthHandler
java.lang.Object
|
+--HTTPClient.DefaultAuthHandler
- public class DefaultAuthHandler
- extends Object
- implements AuthorizationHandler, HTTPClient.GlobalConstants
This class is the default authorization handler. It currently handles the
authentication schemes "Basic", "Digest", and "SOCKS5" (used for the
SocksClient and not part of HTTP per se).
By default, when a username and password is required, this handler throws
up a message box requesting the desired info. However, applications can
set their
own authorization prompter
if desired.
Note: all methods except for
setAuthorizationPrompter are meant to be invoked by the
AuthorizationModule only, i.e. should not be invoked by the application
(those methods are only public because implementing the
AuthorizationHandler interface requires them to be).
- Since:
- V0.2
- Version:
- 0.3-3 06/05/2001
- Author:
- Ronald Tschalär
Fields inherited from interface HTTPClient.GlobalConstants |
CD_0,
CD_CHUNKED,
CD_CLOSE,
CD_CONTLEN,
CD_HDRS,
CD_MP_BR,
CD_NONE,
HTTP,
HTTP_1_0,
HTTP_1_1,
HTTP_NG,
HTTPS,
SHTTP |
Method Summary |
AuthorizationInfo |
fixupAuthInfo(AuthorizationInfo info,
RoRequest req,
AuthorizationInfo challenge,
RoResponse resp)
For Digest authentication we need to set the uri, response and
opaque parameters. |
AuthorizationInfo |
getAuthorization(AuthorizationInfo challenge,
RoRequest req,
RoResponse resp)
returns the requested authorization, or null if none was given. |
void |
handleAuthHeaders(Response resp,
RoRequest req,
AuthorizationInfo prev,
AuthorizationInfo prxy)
We handle the "Authentication-Info" and "Proxy-Authentication-Info"
headers here. |
void |
handleAuthTrailers(Response resp,
RoRequest req,
AuthorizationInfo prev,
AuthorizationInfo prxy)
We handle the "Authentication-Info" and "Proxy-Authentication-Info"
trailers here. |
static AuthorizationPrompter |
setAuthorizationPrompter(AuthorizationPrompter prompt)
Set a new username/password prompter. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
DefaultAuthHandler
public DefaultAuthHandler()
fixupAuthInfo
public AuthorizationInfo fixupAuthInfo(AuthorizationInfo info,
RoRequest req,
AuthorizationInfo challenge,
RoResponse resp)
throws AuthSchemeNotImplException
- For Digest authentication we need to set the uri, response and
opaque parameters. For "Basic" and "SOCKS5" nothing is done.
- Specified by:
- fixupAuthInfo in interface AuthorizationHandler
- Tags copied from interface: AuthorizationHandler
- Parameters:
info
- the authorization info retrieved from the list of
known info.req
- the request this info is targeted for.challenge
- the authorization challenge received from the server
if this is in response to a 401, or null if we are
preemptively sending the info.resp
- the full 401 response received, or null if we are
preemptively sending the info.- Returns:
- the authorization info to be sent with the request, or null
if none is to be sent.
- Throws:
- AuthSchemeNotImplException - if the authorization scheme
in the info cannot be handled.
- IOException - if an exception occurs while fixing up the
info
getAuthorization
public AuthorizationInfo getAuthorization(AuthorizationInfo challenge,
RoRequest req,
RoResponse resp)
throws AuthSchemeNotImplException,
IOException
- returns the requested authorization, or null if none was given.
- Specified by:
- getAuthorization in interface AuthorizationHandler
- Parameters:
challenge
- the parsed challenge from the server.req
- the request which solicited this responseresp
- the full response received- Returns:
- a structure containing the necessary authorization info,
or null
- Throws:
- AuthSchemeNotImplException - if the authentication scheme
in the challenge cannot be handled.
handleAuthHeaders
public void handleAuthHeaders(Response resp,
RoRequest req,
AuthorizationInfo prev,
AuthorizationInfo prxy)
throws IOException
- We handle the "Authentication-Info" and "Proxy-Authentication-Info"
headers here.
- Specified by:
- handleAuthHeaders in interface AuthorizationHandler
- Tags copied from interface: AuthorizationHandler
- Parameters:
resp
- the full Responsereq
- the Request which provoked this responseprev
- the previous auth info sent, or null if none was sentprxy
- the previous proxy auth info sent, or null if none was sent- Throws:
- IOException - if an exception occurs during the reading of
the headers.
handleAuthTrailers
public void handleAuthTrailers(Response resp,
RoRequest req,
AuthorizationInfo prev,
AuthorizationInfo prxy)
throws IOException
- We handle the "Authentication-Info" and "Proxy-Authentication-Info"
trailers here.
- Specified by:
- handleAuthTrailers in interface AuthorizationHandler
- Tags copied from interface: AuthorizationHandler
- Parameters:
resp
- the full Responsereq
- the Request which provoked this responseprev
- the previous auth info sent, or null if none was sentprxy
- the previous proxy auth info sent, or null if none was sent- Throws:
- IOException - if an exception occurs during the reading of
the trailers.
- See Also:
AuthorizationHandler.handleAuthHeaders(HTTPClient.Response, HTTPClient.RoRequest, HTTPClient.AuthorizationInfo, HTTPClient.AuthorizationInfo)
setAuthorizationPrompter
public static AuthorizationPrompter setAuthorizationPrompter(AuthorizationPrompter prompt)
- Set a new username/password prompter.
- Parameters:
prompt
- the AuthorizationPrompter to use whenever a username
and password are needed; if null, no querying will be
done- Returns:
- the previous prompter