|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
This is the interface that an Authorization handler must implement. You can implement your own auth handler to add support for auth schemes other than the ones handled by the default handler, to use a different UI for soliciting usernames and passwords, or for using an altogether different way of getting the necessary auth info.
AuthorizationInfo.setAuthHandler(HTTPClient.AuthorizationHandler)
Method Summary | |
AuthorizationInfo |
fixupAuthInfo(AuthorizationInfo info,
RoRequest req,
AuthorizationInfo challenge,
RoResponse resp)
This method is called whenever auth info is chosen from the list of known info in the AuthorizationInfo class to be sent with a request. |
AuthorizationInfo |
getAuthorization(AuthorizationInfo challenge,
RoRequest req,
RoResponse resp)
This method is called whenever a 401 or 407 response is received and no candidate info is found in the list of known auth info. |
void |
handleAuthHeaders(Response resp,
RoRequest req,
AuthorizationInfo prev,
AuthorizationInfo prxy)
Sometimes even non-401 responses will contain headers pertaining to authorization (such as the "Authentication-Info" header). |
void |
handleAuthTrailers(Response resp,
RoRequest req,
AuthorizationInfo prev,
AuthorizationInfo prxy)
This method is similar to handleAuthHeaders except that
it is called if any headers in the trailer were sent. |
Method Detail |
public AuthorizationInfo getAuthorization(AuthorizationInfo challenge, RoRequest req, RoResponse resp) throws AuthSchemeNotImplException, IOException
If the returned info is not null it will be added to the list of known info. If the info is valid for more than one (host, port, realm, scheme) tuple then this method must add the corresponding auth infos itself.
This method must check req.allow_ui and only attempt user interaction if it's true.
challenge
- the parsed challenge from the server; the host,
port, scheme, realm and params are set to the
values given by the server in the challenge.req
- the request which provoked this response.resp
- the full response.public AuthorizationInfo fixupAuthInfo(AuthorizationInfo info, RoRequest req, AuthorizationInfo challenge, RoResponse resp) throws AuthSchemeNotImplException, IOException
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.public void handleAuthHeaders(Response resp, RoRequest req, AuthorizationInfo prev, AuthorizationInfo prxy) throws IOException
fixupAuthInfo()
and getAuthorization()
are
invoked after this method.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 sentpublic void handleAuthTrailers(Response resp, RoRequest req, AuthorizationInfo prev, AuthorizationInfo prxy) throws IOException
handleAuthHeaders
except that
it is called if any headers in the trailer were sent. This also
implies that it is invoked after any fixupAuthInfo()
or
getAuthorization()
invocation.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 senthandleAuthHeaders(HTTPClient.Response, HTTPClient.RoRequest, HTTPClient.AuthorizationInfo, HTTPClient.AuthorizationInfo)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |