# Class SecurityFilterProviderCollection

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

public class SecurityFilterProviderCollection extends Object
A collection of security filter providers.

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`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 Object

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

## Constructor Details

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

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