Package org.springframework.security.web.header

# Class HeaderWriterFilter

java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
org.springframework.security.web.header.HeaderWriterFilter

All Implemented Interfaces:
  `jakarta.servlet.Filter`, `org.springframework.beans.factory.Aware`, `org.springframework.beans.factory.BeanNameAware`, `org.springframework.beans.factory.DisposableBean`, `org.springframework.beans.factory.InitializingBean`, `org.springframework.context.EnvironmentAware`, `org.springframework.core.env.EnvironmentCapable`, `org.springframework.web.context.ServletContextAware`

public class HeaderWriterFilter extends org.springframework.web.filter.OncePerRequestFilter
Filter implementation to add headers to the current response. Can be useful to add certain headers which enable browser protection. Like X-Frame-Options, X-XSS-Protection and X-Content-Type-Options.

Since:
  3.2

## Field Summary

### Fields inherited from class org.springframework.web.filter.OncePerRequestFilter

`ALREADY_FILTERED_SUFFIX`

### Fields inherited from class org.springframework.web.filter.GenericFilterBean

`logger`

## Constructor Summary

Constructors
Constructor
Description
`HeaderWriterFilter(List<HeaderWriter> headerWriters)`
Creates a new instance.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain)`
`void`
`setShouldWriteHeadersEagerly(boolean shouldWriteHeadersEagerly)`
Allow writing headers at the beginning of the request.

### Methods inherited from class org.springframework.web.filter.OncePerRequestFilter

`doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatch`

### Methods inherited from class org.springframework.web.filter.GenericFilterBean

`addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext`

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

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

## Constructor Details

### HeaderWriterFilter

public HeaderWriterFilter(List<HeaderWriter> headerWriters)
Creates a new instance.

Parameters:
  `headerWriters` - the `HeaderWriter` instances to write out headers to the `HttpServletResponse`.

## Method Details

### doFilterInternal

protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOException

Specified by:
  `doFilterInternal` in class `org.springframework.web.filter.OncePerRequestFilter`
Throws:
  `jakarta.servlet.ServletException`
  `IOException`

### setShouldWriteHeadersEagerly

public void setShouldWriteHeadersEagerly(boolean shouldWriteHeadersEagerly)
Allow writing headers at the beginning of the request.

Parameters:
  `shouldWriteHeadersEagerly` - boolean to allow writing headers at the beginning of the request.
Since:
  5.2