Class BasicAuthenticator
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 Authenticator
Authenticator.Failure, Authenticator.Result, Authenticator.Retry, Authenticator.SuccessModifier and TypeClassDescriptionstatic classIndicates an authentication failure.static classBase class for return type fromAuthenticator.authenticate(HttpExchange)method.static classIndicates an authentication must be retried.static classIndicates an authentication has succeeded and the authenticated user principal can be acquired by callingAuthenticator.Success.getPrincipal(). -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionBasicAuthenticator(String realm) Creates aBasicAuthenticatorfor the given HTTP realm.BasicAuthenticator(String realm, Charset charset) Creates aBasicAuthenticatorfor the given HTTP realm and using the givenCharsetto decode the Basic authentication credentials (username and password). -
Method Summary
Modifier and TypeMethodDescriptionCalled to authenticate each incoming request.abstract booleancheckCredentials(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 thisBasicAuthenticatorwas created with.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Field Details
-
realm
The HTTP Basic authentication realm.
-
-
Constructor Details
-
BasicAuthenticator
Creates aBasicAuthenticatorfor 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
realmparameter will be embedded in a quoted string. - Parameters:
realm- the HTTP Basic authentication realm- Throws:
NullPointerException- if realm isnullIllegalArgumentException- 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 aBasicAuthenticatorfor the given HTTP realm and using the givenCharsetto decode the Basic authentication credentials (username and password).- API Note:
UTF-8is 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
realmparameter will be embedded in a quoted string.- Parameters:
realm- the HTTP Basic authentication realmcharset- theCharsetto decode incoming credentials from the client- Throws:
NullPointerException- if realm or charset arenullIllegalArgumentException- 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.- Since:
- 14
-
-
Method Details
-
getRealm
Returns the realm thisBasicAuthenticatorwas created with.- Returns:
- the authenticator's realm string
-
authenticate
Description copied from class:AuthenticatorCalled to authenticate each incoming request. The implementation must return aAuthenticator.Failure,Authenticator.SuccessorAuthenticator.Retryobject as appropriate:-
Failuremeans the authentication has completed, but has failed due to invalid credentials. -
Successmeans that the authentication has succeeded, and aPrincipalobject representing the user can be retrieved by callingAuthenticator.Success.getPrincipal(). -
Retrymeans 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 theRetryobject.Retrymay occur multiple times.
- Specified by:
authenticatein classAuthenticator- Parameters:
t- theHttpExchangeupon 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:
trueif the credentials are valid,falseotherwise
-