@ProviderType
public interface Authenticator
Authenticator interface defines the service interface which
 may be used by applications to enforce requests to be authenticated (see
 login(HttpServletRequest, HttpServletResponse)) or to end enforced
 authentication (see logout(HttpServletRequest, HttpServletResponse)
 ). As such this service may be looked at as the functionality to enable
 applications to log users in and out.
 A very simple login script (using ESP here) could be implemented like this:
 var auth = sling.getService(org.apache.sling.commons.auth.Authenticator);
 if (auth != null) {
     try {
         auth.login(request, response);
         return; // we are done here
     } catch (e) {
         // probably NoAuthenticationHandler exception
     }
 }
 // Authenticator service is missing or no AuthenticationHandler
 ... do whatever you want to for error handling ...
 
 Likewise implementing a logout script (ESP, too) is equally simple:
 if (request.authType) {
     // not logged in at all, no need to logout
 } else {
     var auth = sling.getService(org.apache.sling.commons.auth.Authenticator);
     if (auth != null) {
         auth.logout(request, response);
     } else {
         // handle the case of no Authenticator service to logout with
     }
 }
 
 This interface is not intended to be implemented by applications but may be used to initiate the authentication process form a request processing servlet or script.
| Modifier and Type | Field and Description | 
|---|---|
| static java.lang.String | LOGIN_RESOURCEName of the request attribute which may be set by the application to
 indicate to the  login(HttpServletRequest, HttpServletResponse)method to which resource access should actually be authenticated. | 
| static java.lang.String | SERVICE_NAMEThe name under which this service is registered. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | login(javax.servlet.http.HttpServletRequest request,
     javax.servlet.http.HttpServletResponse response)Tries to login a request user for the current request. | 
| void | logout(javax.servlet.http.HttpServletRequest request,
      javax.servlet.http.HttpServletResponse response)Logs out if the current request is authenticated. | 
static final java.lang.String SERVICE_NAME
static final java.lang.String LOGIN_RESOURCE
login(HttpServletRequest, HttpServletResponse)
 method to which resource access should actually be authenticated. If this
 request attribute is not set or is the empty string, the
 login(HttpServletRequest, HttpServletResponse) method uses the
 request path info (HttpServletRequest.getPathInfo()) method
 to find the resource to which to authenticate access.
 
 This request attribute can be used by frontend servlets/scripts which
 call into login(HttpServletRequest, HttpServletResponse) on
 behalf of users.
void login(@Nonnull
           javax.servlet.http.HttpServletRequest request,
           @Nonnull
           javax.servlet.http.HttpServletResponse response)
 To identify the resource to which access should be authenticated the
 resourceHttpServletRequest.getPathInfo()) is used.
 
 This method must be called on an uncommitted response since the
 implementation may want to reset the response to start the authentication
 process with a clean response. If the response is already committed an
 IllegalStateException is thrown.
 
 After this method has finished, request processing should be terminated
 and the response be considered committed and finished unless the
 NoAuthenticationHandlerException exception is thrown in which
 case no response has been sent to the client.
request - The object representing the client request.response - The object representing the response to the client.NoAuthenticationHandlerException - If the service cannot find a way
             to authenticate a request user.java.lang.IllegalStateException - If the response has already been committed.void logout(@Nonnull
            javax.servlet.http.HttpServletRequest request,
            @Nonnull
            javax.servlet.http.HttpServletResponse response)
 This method must be called on an uncommitted response since the
 implementation may want to reset the response to restart the
 authentication process with a clean response. If the response is already
 committed an IllegalStateException is thrown.
 
After this method has finished, request processing should be terminated and the response be considered committed and finished.
request - The object representing the client request.response - The object representing the response to the client.java.lang.IllegalStateException - If the response has already been committed.Copyright © 2018 The Apache Software Foundation. All rights reserved.