# Class ConfigurationSpi

java.lang.Object
javax.security.auth.login.ConfigurationSpi

public abstract class ConfigurationSpi extends Object
This class defines the Service Provider Interface (SPI) for the `Configuration` class. All the abstract methods in this class must be implemented by each service provider who wishes to supply a Configuration implementation.

Subclass implementations of this abstract class must provide a public constructor that takes a `Configuration.Parameters` object as an input parameter. This constructor also must throw an IllegalArgumentException if it does not understand the `Configuration.Parameters` input.

Since:
  1.6

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ConfigurationSpi()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract AppConfigurationEntry[]`
  `engineGetAppConfigurationEntry(String name)`
  Retrieve the AppConfigurationEntries for the specified `name`.
  `protected void`
  `engineRefresh()`
  Refresh and reload the Configuration.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### ConfigurationSpi

    public ConfigurationSpi()
    Constructor for subclasses to call.

- ## Method Details

  - ### engineGetAppConfigurationEntry

    protected abstract AppConfigurationEntry[] engineGetAppConfigurationEntry(String name)
    Retrieve the AppConfigurationEntries for the specified `name`.
    Parameters:
      `name` - the name used to index the Configuration.
    Returns:
      an array of AppConfigurationEntries for the specified `name`, or null if there are no entries.

  - ### engineRefresh

    protected void engineRefresh()
    Refresh and reload the Configuration.

    This method causes this Configuration object to refresh/reload its contents in an implementation-dependent manner. For example, if this Configuration object stores its entries in a file, calling `refresh` may cause the file to be re-read.

    The default implementation of this method does nothing. This method should be overridden if a refresh operation is supported by the implementation.