Package waffle.servlet.spi

## Interface SecurityFilterProvider

All Known Implementing Classes:
  `BasicSecurityFilterProvider`, `NegotiateSecurityFilterProvider`

    public interface SecurityFilterProvider

A security filter provider.

Author:
  dblock[at]dblock[dot]org

### Method Summary

All Methods Instance Methods Abstract Methods
`IWindowsIdentity` `doFilter​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Execute filter.
`void` `initParameter​(String parameterName, String parameterValue)` Init a parameter.
`boolean` `isPrincipalException​(javax.servlet.http.HttpServletRequest request)` Returns true if despite having a principal authentication needs to happen.
`boolean` `isSecurityPackageSupported​(String securityPackage)` Tests whether a specific security package is supported.
`void` `sendUnauthorized​(javax.servlet.http.HttpServletResponse response)` Add authentication method headers.

### Method Detail

#### sendUnauthorized

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

Add authentication method headers.

Parameters:
  `response` - Http Response.

#### isPrincipalException

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

Returns true if despite having a principal authentication needs to happen.

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

#### doFilter

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

Execute filter.

Parameters:
  `request` - Http Servlet Request.
  `response` - Http Servlet Response.
Returns:
  A Windows identity in case authentication completed or NULL if not. Thrown exceptions should be caught and processed as 401 Access Denied.
Throws:
  `IOException` - on doFilter.

#### isSecurityPackageSupported

    boolean isSecurityPackageSupported​(String securityPackage)

Tests whether a specific security package is supported.

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

#### initParameter

    void initParameter​(String parameterName,
                       String parameterValue)

Init a parameter.

Parameters:
  `parameterName` - Parameter name.
  `parameterValue` - Parameter value.