waffle.servlet.spi

## Class SecurityFilterProviderCollection

- java.lang.Object
- - waffle.servlet.spi.SecurityFilterProviderCollection

    public class SecurityFilterProviderCollection
    extends Object

A collection of security filter providers.

Author:
  dblock[at]dblock[dot]org

### Constructor Summary

Constructors
Constructor and Description
`SecurityFilterProviderCollection(IWindowsAuthProvider auth)` Instantiates a new security filter provider collection.
`SecurityFilterProviderCollection(SecurityFilterProvider[] providerArray)` Instantiates a new security filter provider collection.
`SecurityFilterProviderCollection(String[] providerNames, IWindowsAuthProvider auth)` Instantiates a new security filter provider collection.

### Method Summary

All Methods Instance Methods Concrete Methods
`IWindowsIdentity` `doFilter(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Filter.
`SecurityFilterProvider` `getByClassName(String name)` Get a security provider by class name.
`boolean` `isPrincipalException(javax.servlet.http.HttpServletRequest request)` Returns true if authentication still needs to happen despite an existing principal.
`boolean` `isSecurityPackageSupported(String securityPackage)` Tests whether a specific security package is supported by any of the underlying providers.
`void` `sendUnauthorized(javax.servlet.http.HttpServletResponse response)` Send authorization headers.
`int` `size()` Number of providers.

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### SecurityFilterProviderCollection

    public SecurityFilterProviderCollection(SecurityFilterProvider[] providerArray)

Instantiates a new security filter provider collection.

Parameters:
  `providerArray` - the provider array

#### SecurityFilterProviderCollection

    public SecurityFilterProviderCollection(String[] providerNames,
                                            IWindowsAuthProvider auth)

Instantiates a new security filter provider collection.

Parameters:
  `providerNames` - the provider names
  `auth` - the auth

#### SecurityFilterProviderCollection

    public SecurityFilterProviderCollection(IWindowsAuthProvider auth)

Instantiates a new security filter provider collection.

Parameters:
  `auth` - the auth

### Method Detail

#### isSecurityPackageSupported

    public boolean isSecurityPackageSupported(String securityPackage)

Tests whether a specific security package is supported by any of the underlying providers.

Parameters:
  `securityPackage` - Security package.
Returns:
  True if the security package is supported, false otherwise.

#### doFilter

    public IWindowsIdentity doFilter(javax.servlet.http.HttpServletRequest request,
                                     javax.servlet.http.HttpServletResponse response)
                              throws IOException

Filter.

Parameters:
  `request` - Http Request
  `response` - Http Response
Returns:
  Windows Identity or NULL.
Throws:
  `IOException` - on doFilter.

#### isPrincipalException

    public boolean isPrincipalException(javax.servlet.http.HttpServletRequest request)

Returns true if authentication still needs to happen despite an existing principal.

Parameters:
  `request` - Http Request
Returns:
  True if authentication is required.

#### sendUnauthorized

    public void sendUnauthorized(javax.servlet.http.HttpServletResponse response)

Send authorization headers.

Parameters:
  `response` - Http Response

#### size

    public int size()

Number of providers.

Returns:
  Number of providers.

#### getByClassName

    public SecurityFilterProvider getByClassName(String name)
                                          throws ClassNotFoundException

Get a security provider by class name.

Parameters:
  `name` - Class name.
Returns:
  A security provider instance.
Throws:
  `ClassNotFoundException` - when class not found.