public class PKIAuthenticationPlugin extends AuthenticationPlugin implements HttpClientBuilderPlugin
Modifier and Type | Class and Description |
---|---|
static class |
PKIAuthenticationPlugin.PKIHeaderData |
SolrInfoBean.Category, SolrInfoBean.Group
Modifier and Type | Field and Description |
---|---|
static String |
HEADER |
static String |
NODE_IS_USER |
AUTHENTICATION_PLUGIN_PROP, HTTP_HEADER_X_SOLR_AUTHDATA, numAuthenticated, numErrors, numMissingCredentials, numPassThrough, numWrongCredentials, requests, requestTimes, solrMetricsContext, totalTime
Constructor and Description |
---|
PKIAuthenticationPlugin(CoreContainer cores,
String nodeName,
PublicKeyHandler publicKeyHandler) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Implementations should always call
SolrMetricProducer.super.close() to ensure that
metrics with the same life-cycle as this component are properly unregistered. |
boolean |
doAuthenticate(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain filterChain)
This method attempts to authenticate the request.
|
SolrHttpClientBuilder |
getHttpClientBuilder(SolrHttpClientBuilder builder) |
String |
getPublicKey() |
void |
init(Map<String,Object> pluginConfig)
This is called upon loading up of a plugin, used for setting it up.
|
boolean |
isInterceptorRegistered() |
boolean |
needsAuthorization(javax.servlet.http.HttpServletRequest req) |
void |
setup(Http2SolrClient client) |
static void |
withServerIdentity(boolean enabled)
Mark the current thread as a server thread and set a flag in SolrRequestInfo to indicate you want
to send a request as the server identity instead of as the authenticated user.
|
authenticate, closeRequest, getCategory, getDescription, getMetricNames, getName, getSolrMetricsContext, initializeMetrics, interceptInternodeRequest, interceptInternodeRequest
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getMetricRegistry, getMetricsSnapshot, registerMetricName
getUniqueMetricTag, initializeMetrics
public static final String HEADER
public static final String NODE_IS_USER
public PKIAuthenticationPlugin(CoreContainer cores, String nodeName, PublicKeyHandler publicKeyHandler)
public static void withServerIdentity(boolean enabled)
enabled
- If true, enable the current thread to make requests with the server identity.SolrRequestInfo.setUseServerToken(boolean)
public boolean isInterceptorRegistered()
public void init(Map<String,Object> pluginConfig)
AuthenticationPlugin
init
in class AuthenticationPlugin
pluginConfig
- Config parameters, possibly from a ZK sourcepublic boolean doAuthenticate(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain filterChain) throws Exception
AuthenticationPlugin
doAuthenticate
in class AuthenticationPlugin
request
- the http requestresponse
- the http responsefilterChain
- the servlet filter chainException
- any exception thrown during the authentication, e.g. PrivilegedActionExceptionpublic void setup(Http2SolrClient client)
setup
in interface HttpClientBuilderPlugin
public SolrHttpClientBuilder getHttpClientBuilder(SolrHttpClientBuilder builder)
getHttpClientBuilder
in interface HttpClientBuilderPlugin
public boolean needsAuthorization(javax.servlet.http.HttpServletRequest req)
public void close() throws IOException
SolrMetricProducer
SolrMetricProducer.super.close()
to ensure that
metrics with the same life-cycle as this component are properly unregistered. This prevents
obscure memory leaks.
from: https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html
While this interface method is declared to throw Exception, implementers are strongly encouraged
to declare concrete implementations of the close method to throw more specific exceptions, or to
throw no exception at all if the close operation cannot fail.close
in interface AutoCloseable
close
in interface SolrMetricProducer
IOException
public String getPublicKey()
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.