Class BasicAuthPlugin

java.lang.Object
org.apache.solr.security.AuthenticationPlugin
org.apache.solr.security.BasicAuthPlugin
All Implemented Interfaces:
AutoCloseable, org.apache.solr.common.SpecProvider, SolrInfoBean, SolrMetricProducer, ConfigEditablePlugin

public class BasicAuthPlugin extends AuthenticationPlugin implements ConfigEditablePlugin, org.apache.solr.common.SpecProvider
  • Field Details

  • Constructor Details

    • BasicAuthPlugin

      public BasicAuthPlugin()
  • Method Details

    • authenticate

      public boolean authenticate(String username, String pwd)
    • init

      public void init(Map<String,Object> pluginConfig)
      Description copied from class: AuthenticationPlugin
      This is called upon loading up of a plugin, used for setting it up.
      Specified by:
      init in class AuthenticationPlugin
      Parameters:
      pluginConfig - Config parameters, possibly from a ZK source
    • edit

      public Map<String,Object> edit(Map<String,Object> latestConf, List<org.apache.solr.common.util.CommandOperation> commands)
      Description copied from interface: ConfigEditablePlugin
      Operate the commands on the latest conf and return a new conf object If there are errors in the commands , throw a SolrException. return a null if no changes are to be made as a result of this edit. It is the responsibility of the implementation to ensure that the returned config is valid . The framework does no validation of the data
      Specified by:
      edit in interface ConfigEditablePlugin
    • getAuthenticationProvider

      protected BasicAuthPlugin.AuthenticationProvider getAuthenticationProvider(Map<String,Object> pluginConfig)
    • doAuthenticate

      public boolean doAuthenticate(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws Exception
      Description copied from class: AuthenticationPlugin
      This method attempts to authenticate the request. Upon a successful authentication, this must call the next filter in the filter chain and set the user principal of the request, or else, upon an error or an authentication failure, throw an exception.
      Specified by:
      doAuthenticate in class AuthenticationPlugin
      Parameters:
      request - the http request
      response - the http response
      filterChain - the servlet filter chain
      Returns:
      false if the request not be processed by Solr (not continue), i.e. the response and status code have already been sent.
      Throws:
      Exception - any exception thrown during the authentication, e.g. PrivilegedActionException
    • close

      public void close() throws IOException
      Description copied from interface: SolrMetricProducer
      Implementations should always call 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.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface SolrMetricProducer
      Throws:
      IOException
    • closeRequest

      public void closeRequest()
      Description copied from class: AuthenticationPlugin
      Cleanup any per request data
      Overrides:
      closeRequest in class AuthenticationPlugin
    • interceptInternodeRequest

      protected boolean interceptInternodeRequest(org.eclipse.jetty.client.Request request)
      Description copied from class: AuthenticationPlugin
      Override this method to intercept internode requests. This allows your authentication plugin to decide on per-request basis whether it should handle inter-node requests or delegate to PKIAuthenticationPlugin. Return true to indicate that your plugin did handle the request, or false to signal that PKI plugin should handle it. This method will be called by PKIAuthenticationPlugin's interceptor.

      If not overridden, this method will return true for plugins implementing HttpClientBuilderPlugin. This method can be overridden by subclasses e.g. to set HTTP headers, even if you don't use a clientBuilder.

      Overrides:
      interceptInternodeRequest in class AuthenticationPlugin
      Parameters:
      request - the httpRequest that is about to be sent to another internal Solr node
      Returns:
      true if this plugin handled authentication for the request, else false
    • getSpec

      public org.apache.solr.common.util.ValidatingJsonMap getSpec()
      Specified by:
      getSpec in interface org.apache.solr.common.SpecProvider
    • getBlockUnknown

      public boolean getBlockUnknown()