# 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`

- ## 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.