public class AuthorizationInfo
extends java.lang.Object
implements java.lang.Cloneable
There are 7 fields which make up this class: host, port, scheme, realm, cookie, params, and extra_info. The host and port select which server the info will be sent to. The realm is server specified string which groups various URLs under a given server together and which is used to select the correct info when a server issues an auth challenge; for schemes which don't use a realm (such as "NTLM", "PEM", and "Kerberos") the realm must be the empty string (""). The scheme is the authorization scheme used (such as "Basic" or "Digest").
There are basically two formats used for the Authorization header, the one used by the "Basic" scheme and derivatives, and the one used by the "Digest" scheme and derivatives. The first form contains just the the scheme and a "cookie":
Authorization: Basic aGVsbG86d29ybGQ=The second form contains the scheme followed by a number of parameters in the form of name=value pairs:
Authorization: Digest username="hello", realm="test", nonce="42", ...The two fields "cookie" and "params" correspond to these two forms. toString() is used by the AuthorizationModule when generating the Authorization header and will format the info accordingly. Note that "cookie" and "params" are mutually exclusive: if the cookie field is non-null then toString() will generate the first form; otherwise it will generate the second form.
In some schemes "extra" information needs to be kept which doesn't appear directly in the Authorization header. An example of this are the A1 and A2 strings in the Digest scheme. Since all elements in the params field will appear in the Authorization header this field can't be used for storing such info. This is what the extra_info field is for. It is an arbitrary object which can be manipulated by the corresponding setExtraInfo() and getExtraInfo() methods, but which will not be printed by toString().
The addXXXAuthorization(), removeXXXAuthorization(), and getAuthorization() methods manipulate and query an internal list of AuthorizationInfo instances. There can be only one instance per host, port, scheme, and realm combination (see equals()).
Constructor and Description |
---|
AuthorizationInfo(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm,
NVPair[] params,
java.lang.Object info)
Creates a new info structure for the specified host and port with the
specified scheme, realm, params.
|
AuthorizationInfo(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm,
java.lang.String cookie)
Creates a new info structure for the specified host and port with the
specified scheme, realm and cookie.
|
Modifier and Type | Method and Description |
---|---|
static void |
addAuthorization(AuthorizationInfo auth_info)
Adds an authorization entry to the list using the default context.
|
static void |
addAuthorization(AuthorizationInfo auth_info,
java.lang.Object context)
Adds an authorization entry to the list.
|
static void |
addAuthorization(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm,
java.lang.String cookie,
NVPair[] params,
java.lang.Object info)
Adds an authorization entry to the list using the default context.
|
static void |
addAuthorization(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm,
java.lang.String cookie,
NVPair[] params,
java.lang.Object info,
java.lang.Object context)
Adds an authorization entry to the list.
|
static void |
addBasicAuthorization(java.lang.String host,
int port,
java.lang.String realm,
java.lang.String user,
java.lang.String passwd)
Adds an authorization entry for the "Basic" authorization scheme to
the list using the default context.
|
static void |
addBasicAuthorization(java.lang.String host,
int port,
java.lang.String realm,
java.lang.String user,
java.lang.String passwd,
java.lang.Object context)
Adds an authorization entry for the "Basic" authorization scheme to
the list.
|
static void |
addDigestAuthorization(java.lang.String host,
int port,
java.lang.String realm,
java.lang.String user,
java.lang.String passwd)
Adds an authorization entry for the "Digest" authorization scheme to
the list using the default context.
|
static void |
addDigestAuthorization(java.lang.String host,
int port,
java.lang.String realm,
java.lang.String user,
java.lang.String passwd,
java.lang.Object context)
Adds an authorization entry for the "Digest" authorization scheme to
the list.
|
void |
addPath(java.lang.String resource)
Adds the path from the given resource to our path list.
|
java.lang.Object |
clone() |
boolean |
equals(java.lang.Object obj)
Two AuthorizationInfos are considered equal if their host, port,
scheme and realm match.
|
static AuthorizationHandler |
getAuthHandler()
Get's the current authorization handler.
|
static AuthorizationInfo |
getAuthorization(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm)
Searches for the authorization info using the given host, port,
scheme and realm.
|
static AuthorizationInfo |
getAuthorization(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm,
java.lang.Object context)
Searches for the authorization info in the given context using the
given host, port, scheme and realm.
|
java.lang.String |
getCookie()
Get the cookie
|
java.lang.Object |
getExtraInfo()
Get the extra info.
|
java.lang.String |
getHost()
Get the host.
|
NVPair[] |
getParams()
Get the authentication parameters.
|
int |
getPort()
Get the port.
|
java.lang.String |
getRealm()
Get the realm.
|
java.lang.String |
getScheme()
Get the scheme.
|
int |
hashCode()
Produces a hash code based on host, scheme and realm.
|
static void |
removeAuthorization(AuthorizationInfo auth_info)
Removes an authorization entry from the list using the default context.
|
static void |
removeAuthorization(AuthorizationInfo auth_info,
java.lang.Object context)
Removes an authorization entry from the list.
|
static void |
removeAuthorization(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm)
Removes an authorization entry from the list using the default context.
|
static void |
removeAuthorization(java.lang.String host,
int port,
java.lang.String scheme,
java.lang.String realm,
java.lang.Object context)
Removes an authorization entry from the list.
|
static AuthorizationHandler |
setAuthHandler(AuthorizationHandler handler)
Set's the authorization handler.
|
void |
setCookie(java.lang.String cookie)
Set the cookie
|
void |
setExtraInfo(java.lang.Object info)
Set the extra info.
|
void |
setParams(NVPair[] params)
Set the authentication parameters.
|
java.lang.String |
toString()
Constructs a string containing the authorization info.
|
public AuthorizationInfo(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm, NVPair[] params, java.lang.Object info)
host
- the hostport
- the portscheme
- the schemerealm
- the realmparams
- the parameters as an array of name/value pairs, or nullinfo
- arbitrary extra info, or nullpublic AuthorizationInfo(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm, java.lang.String cookie)
host
- the hostport
- the portscheme
- the schemerealm
- the realmcookie
- for the "Basic" scheme this is the base64-encoded
username/password; for the "NTLM" scheme this is the
base64-encoded username/password message.public static AuthorizationHandler setAuthHandler(AuthorizationHandler handler)
If no handler is set then a default
handler
is used. This handler currently only handles the "Basic" and
"Digest" schemes and brings up a popup which prompts for the username
and password.
The default handler can be disabled by setting the auth handler to null.
handler
- the new authorization handlerAuthorizationHandler
public static AuthorizationHandler getAuthHandler()
AuthorizationHandler
public static AuthorizationInfo getAuthorization(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm)
host
- the hostport
- the portscheme
- the schemerealm
- the realmpublic static AuthorizationInfo getAuthorization(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm, java.lang.Object context)
host
- the hostport
- the portscheme
- the schemerealm
- the realmcontext
- the context this info is associated withpublic static void addAuthorization(AuthorizationInfo auth_info)
auth_info
- the AuthorizationInfo to addpublic static void addAuthorization(AuthorizationInfo auth_info, java.lang.Object context)
auth_info
- the AuthorizationInfo to addcontext
- the context to associate this info withpublic static void addAuthorization(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm, java.lang.String cookie, NVPair[] params, java.lang.Object info)
host
- the hostport
- the portscheme
- the schemerealm
- the realmcookie
- the cookieparams
- an array of name/value pairs of parametersinfo
- arbitrary extra auth infopublic static void addAuthorization(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm, java.lang.String cookie, NVPair[] params, java.lang.Object info, java.lang.Object context)
host
- the hostport
- the portscheme
- the schemerealm
- the realmcookie
- the cookieparams
- an array of name/value pairs of parametersinfo
- arbitrary extra auth infocontext
- the context to associate this info withpublic static void addBasicAuthorization(java.lang.String host, int port, java.lang.String realm, java.lang.String user, java.lang.String passwd)
host
- the hostport
- the portrealm
- the realmuser
- the usernamepasswd
- the passwordpublic static void addBasicAuthorization(java.lang.String host, int port, java.lang.String realm, java.lang.String user, java.lang.String passwd, java.lang.Object context)
host
- the hostport
- the portrealm
- the realmuser
- the usernamepasswd
- the passwordcontext
- the context to associate this info withpublic static void addDigestAuthorization(java.lang.String host, int port, java.lang.String realm, java.lang.String user, java.lang.String passwd)
host
- the hostport
- the portrealm
- the realmuser
- the usernamepasswd
- the passwordpublic static void addDigestAuthorization(java.lang.String host, int port, java.lang.String realm, java.lang.String user, java.lang.String passwd, java.lang.Object context)
host
- the hostport
- the portrealm
- the realmuser
- the usernamepasswd
- the passwordcontext
- the context to associate this info withpublic static void removeAuthorization(AuthorizationInfo auth_info)
auth_info
- the AuthorizationInfo to removepublic static void removeAuthorization(AuthorizationInfo auth_info, java.lang.Object context)
auth_info
- the AuthorizationInfo to removecontext
- the context this info is associated withpublic static void removeAuthorization(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm)
host
- the hostport
- the portscheme
- the schemerealm
- the realmpublic static void removeAuthorization(java.lang.String host, int port, java.lang.String scheme, java.lang.String realm, java.lang.Object context)
host
- the hostport
- the portscheme
- the schemerealm
- the realmcontext
- the context this info is associated withpublic void addPath(java.lang.String resource)
resource
- the resource from which to extract the pathpublic final java.lang.String getHost()
public final int getPort()
public final java.lang.String getScheme()
public final java.lang.String getRealm()
public final java.lang.String getCookie()
public final void setCookie(java.lang.String cookie)
cookie
- the new cookiepublic final NVPair[] getParams()
public final void setParams(NVPair[] params)
an
- array of name/value pairs.public final java.lang.Object getExtraInfo()
public final void setExtraInfo(java.lang.Object info)
info
- the extra infopublic java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
obj
- another AuthorizationInfo against which this one is
to be compared.public java.lang.Object clone()
clone
in class java.lang.Object