Class DynamicResponseHeaderFilter
- java.lang.Object
-
- net.shibboleth.utilities.java.support.net.DynamicResponseHeaderFilter
-
- All Implemented Interfaces:
javax.servlet.Filter
public class DynamicResponseHeaderFilter extends Object implements javax.servlet.Filter
Implementation of an HTTP servletFilterwhich supports configurable response header injection, including via injected functions that can conditionally attach headers.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classDynamicResponseHeaderFilter.ResponseProxyAn implementation ofHttpServletResponsewhich adds the response headers supplied by the outer class.
-
Field Summary
Fields Modifier and Type Field Description private Collection<Function<Pair<javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse>,Boolean>>callbacksCallbacks to add headers dynamically.private Map<String,String>headersStatically defined headers to return.
-
Constructor Summary
Constructors Constructor Description DynamicResponseHeaderFilter()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()voiddoFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)voidinit(javax.servlet.FilterConfig filterConfig)voidsetCallbacks(Collection<Function<Pair<javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse>,Boolean>> theCallbacks)Set the callbacks to invoke to dynamically attach headers.voidsetHeaders(Map<String,String> map)Set the headers to statically attach to all responses.
-
-
-
Field Detail
-
headers
@Nonnull @NonnullElements private Map<String,String> headers
Statically defined headers to return.
-
callbacks
@Nonnull @NonnullElements private Collection<Function<Pair<javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse>,Boolean>> callbacks
Callbacks to add headers dynamically.
-
-
Method Detail
-
setHeaders
public void setHeaders(@Nullable @NonnullElements Map<String,String> map)
Set the headers to statically attach to all responses.- Parameters:
map- header map
-
setCallbacks
public void setCallbacks(@Nullable @NonnullElements Collection<Function<Pair<javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse>,Boolean>> theCallbacks)
Set the callbacks to invoke to dynamically attach headers.- Parameters:
theCallbacks- callback collection
-
init
public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException- Specified by:
initin interfacejavax.servlet.Filter- Throws:
javax.servlet.ServletException
-
destroy
public void destroy()
- Specified by:
destroyin interfacejavax.servlet.Filter
-
doFilter
public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain) throws IOException, javax.servlet.ServletException- Specified by:
doFilterin interfacejavax.servlet.Filter- Throws:
IOExceptionjavax.servlet.ServletException
-
-