java.lang.Object
com.sun.net.httpserver.Authenticator
com.sun.net.httpserver.BasicAuthenticator
BasicAuthenticator provides an implementation of HTTP Basic
authentication. It is an abstract class and must be extended
to provide an implementation of
checkCredentials(String,String)
which is called to verify each incoming request.- Since:
- 1.6
-
Nested Class Summary
Nested classes/interfaces declared in class com.sun.net.httpserver.Authenticator
Authenticator.Failure, Authenticator.Result, Authenticator.Retry, Authenticator.Success
-
Field Summary
-
Constructor Summary
ConstructorDescriptionBasicAuthenticator
(String realm) Creates aBasicAuthenticator
for the given HTTP realm.BasicAuthenticator
(String realm, Charset charset) Creates aBasicAuthenticator
for the given HTTP realm and using the givenCharset
to decode the Basic authentication credentials (username and password). -
Method Summary
Modifier and TypeMethodDescriptionCalled to authenticate each incoming request.abstract boolean
checkCredentials
(String username, String password) Called for each incoming request to verify the given name and password in the context of this authenticator's realm.getRealm()
Returns the realm thisBasicAuthenticator
was created with.
-
Field Details
-
realm
The HTTP Basic authentication realm.
-
-
Constructor Details
-
BasicAuthenticator
Creates aBasicAuthenticator
for the given HTTP realm. The Basic authentication credentials (username and password) are decoded using the platform'sdefault character set
.- API Note:
- The value of the
realm
parameter will be embedded in a quoted string. - Parameters:
realm
- the HTTP Basic authentication realm- Throws:
NullPointerException
- if realm isnull
IllegalArgumentException
- if realm is an empty string or is not correctly quoted, as specified in RFC 7230 section-3.2. Note, any\
character used for quoting must itself be quoted in source code.
-
BasicAuthenticator
Creates aBasicAuthenticator
for the given HTTP realm and using the givenCharset
to decode the Basic authentication credentials (username and password).- API Note:
UTF-8
is the recommended charset because its usage is communicated to the client, and therefore more likely to be used also by the client.The value of the
realm
parameter will be embedded in a quoted string.- Parameters:
realm
- the HTTP Basic authentication realmcharset
- theCharset
to decode incoming credentials from the client- Throws:
NullPointerException
- if realm or charset arenull
IllegalArgumentException
- if realm is an empty string or is not correctly quoted, as specified in RFC 7230 section-3.2. Note, any\
character used for quoting must itself be quoted in source code.
-
-
Method Details
-
getRealm
Returns the realm thisBasicAuthenticator
was created with.- Returns:
- the authenticator's realm string
-
authenticate
Description copied from class:Authenticator
Called to authenticate each incoming request. The implementation must return aAuthenticator.Failure
,Authenticator.Success
orAuthenticator.Retry
object as appropriate:-
Failure
means the authentication has completed, but has failed due to invalid credentials. -
Success
means that the authentication has succeeded, and aPrincipal
object representing the user can be retrieved by callingAuthenticator.Success.getPrincipal()
. -
Retry
means that another HTTP exchange is required. Any response headers needing to be sent back to the client are set in the givenHttpExchange
. The response code to be returned must be provided in theRetry
object.Retry
may occur multiple times.
- Specified by:
authenticate
in classAuthenticator
- Parameters:
t
- theHttpExchange
upon which authenticate is called- Returns:
- the result
-
-
checkCredentials
Called for each incoming request to verify the given name and password in the context of this authenticator's realm. Any caching of credentials must be done by the implementation of this method.- Parameters:
username
- the username from the requestpassword
- the password from the request- Returns:
true
if the credentials are valid,false
otherwise
-