# Class SimpleServerAuthConfig

java.lang.Object
org.apache.catalina.authenticator.jaspic.SimpleServerAuthConfig

All Implemented Interfaces:
  `AuthConfig, ServerAuthConfig`

public class SimpleServerAuthConfig extends Object implements ServerAuthConfig
Basic implementation primarily intended for use when using third-party `ServerAuthModule` implementations that only provide the module. This implementation supports configuring the `ServerAuthContext` with multiple modules.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleServerAuthConfig(String layer, String appContext, CallbackHandler handler, Map<String,Object> properties)`
  Creates a new SimpleServerAuthConfig.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected ServerAuthContext`
  `createServerAuthContext(List<ServerAuthModule> modules)`
  Creates the ServerAuthContext.
  `String`
  `getAppContext()`
  Returns the application context for which this configuration applies.
  `ServerAuthContext`
  `getAuthContext(String authContextID, Subject serviceSubject, Map<String,Object> properties)`
  Returns the `ServerAuthContext` for the given authentication context ID.
  `String`
  `getAuthContextID(MessageInfo messageInfo)`
  Determines the authentication context ID for the given message.
  `String`
  `getMessageLayer()`
  Returns the message layer for which this configuration applies.
  `boolean`
  `isProtected()`
  Indicates whether the authentication mechanism is protected, meaning that the configuration data is stored securely.
  `void`
  `refresh()`
  Refreshes the configuration, reloading any changed settings.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### SimpleServerAuthConfig

    public SimpleServerAuthConfig(String layer, String appContext, CallbackHandler handler, Map<String,Object> properties)
    Creates a new SimpleServerAuthConfig.
    Parameters:
      `layer` - Message layer
      `appContext` - Application context
      `handler` - Callback handler
      `properties` - Configuration properties

- ## Method Details

  - ### getMessageLayer

    public String getMessageLayer()
    Description copied from interface: `jakarta.security.auth.message.config.AuthConfig`
    Returns the message layer for which this configuration applies.
    Specified by:
      `getMessageLayer` in interface `AuthConfig`
    Returns:
      the message layer

  - ### getAppContext

    public String getAppContext()
    Description copied from interface: `jakarta.security.auth.message.config.AuthConfig`
    Returns the application context for which this configuration applies.
    Specified by:
      `getAppContext` in interface `AuthConfig`
    Returns:
      the application context

  - ### getAuthContextID

    public String getAuthContextID(MessageInfo messageInfo)
    Determines the authentication context ID for the given message.

    Returns the MessageInfo's string representation as the auth context ID.

    Specified by:
      `getAuthContextID` in interface `AuthConfig`
    Parameters:
      `messageInfo` - the message information used to determine the context ID
    Returns:
      the authentication context ID, or `null` if no context applies

  - ### refresh

    public void refresh()
    Refreshes the configuration, reloading any changed settings.

    Clears the cached ServerAuthConfig so it will be recreated on next use.

    Specified by:
      `refresh` in interface `AuthConfig`

  - ### isProtected

    public boolean isProtected()
    Indicates whether the authentication mechanism is protected, meaning that the configuration data is stored securely.

    This implementation always returns `false`.

    Specified by:
      `isProtected` in interface `AuthConfig`
    Returns:
      `true` if the mechanism is protected, `false` otherwise

  - ### getAuthContext

    public ServerAuthContext getAuthContext(String authContextID, Subject serviceSubject, Map<String,Object> properties) throws AuthException
    Returns the `ServerAuthContext` for the given authentication context ID.

    Loads ServerAuthModule instances from properties keyed with `org.apache.catalina.authenticator.jaspic.ServerAuthModule.N` where N is 1-based index. The returned context is cached and reused for subsequent calls.

    Specified by:
      `getAuthContext` in interface `ServerAuthConfig`
    Parameters:
      `authContextID` - the authentication context identifier
      `serviceSubject` - the service subject
      `properties` - the configuration properties
    Returns:
      the server authentication context
    Throws:
      `AuthException` - if an error occurs during authentication context creation

  - ### createServerAuthContext

    protected ServerAuthContext createServerAuthContext(List<ServerAuthModule> modules)
    Creates the ServerAuthContext. Can be overridden by subclasses to provide a custom implementation.
    Parameters:
      `modules` - List of ServerAuthModule instances
    Returns:
      The ServerAuthContext instance