Interface Authenticator
- All Superinterfaces:
ServletFilterHolder
- All Known Implementing Classes:
AllowAllAuthenticator,AnonymousAuthenticator,TrustedDomainAuthenticator
-
Method Summary
Modifier and TypeMethodDescriptionauthenticateJDBCContext(Map<String, Object> context) Given a JDBC connection context, authenticate the identity represented by the information in the context.default voiddecorateProxyRequest(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, org.eclipse.jetty.client.api.Request proxyRequest) This is used to add some Headers or Authentication token/results that can be used by down stream target host.Return a WWW-Authenticate challenge scheme string appropriate for this Authenticator's authentication mechanism.javax.servlet.FilterCreate a Filter that performs authentication checks on incoming HTTP requests.Methods inherited from interface org.apache.druid.server.initialization.jetty.ServletFilterHolder
getDispatcherType, getFilterClass, getInitParameters, getPath, getPaths
-
Method Details
-
getFilter
javax.servlet.Filter getFilter()Create a Filter that performs authentication checks on incoming HTTP requests.If the authentication succeeds, the Filter should set the "Druid-Authentication-Result" attribute in the request, containing an AuthenticationResult that represents the authenticated identity of the requester, along with the name of the Authorizer instance that should authorize the request. An Authenticator may choose to add a Map<String, Object> context to the authentication result, containing additional information to be used by the Authorizer. The contents of this map are left for Authenticator/Authorizer implementors to decide.
If the "Druid-Authentication-Result" attribute is already set (i.e., request has been authenticated by an earlier Filter), this Filter should skip any authentication checks and proceed to the next Filter.
If a filter cannot recognize a request's format (e.g., the request does not have credentials compatible with a filter's authentication scheme), the filter should not send an error response, allowing other filters to handle the request. A challenge response will be sent if the filter chain is exhausted.
If the authentication fails (i.e., a filter recognized the authentication scheme of a request, but the credentials failed to authenticate successfully) the Filter should send an error response, without needing to proceed to other filters in the chain..
- Specified by:
getFilterin interfaceServletFilterHolder- Returns:
- Filter that authenticates HTTP requests
-
getAuthChallengeHeader
Return a WWW-Authenticate challenge scheme string appropriate for this Authenticator's authentication mechanism.For example, a Basic HTTP implementation should return "Basic", while a Kerberos implementation would return "Negotiate". If this method returns null, no authentication scheme will be added for that Authenticator implementation.
- Returns:
- Authentication scheme
-
authenticateJDBCContext
Given a JDBC connection context, authenticate the identity represented by the information in the context. This is used to secure JDBC access for Druid SQL.For example, a Basic HTTP auth implementation could read the "user" and "password" fields from the JDBC context.
The expected contents of the context are left to the implementation.
- Parameters:
context- JDBC connection context- Returns:
- AuthenticationResult of the identity represented by the context is successfully authenticated, null if authentication failed
-
decorateProxyRequest
default void decorateProxyRequest(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, org.eclipse.jetty.client.api.Request proxyRequest) This is used to add some Headers or Authentication token/results that can be used by down stream target host. Such token can be used to authenticate the user down stream, in cases where to original credentials are not forwardable as is and therefore the need to attach some authentication tokens by the proxy.- Parameters:
clientRequest- original client request processed by the upstream chain of authenticatorproxyResponse- proxy ResponseproxyRequest- actual proxy request targeted to a given broker
-