Package alpine.server.filters
Class ContentSecurityPolicyFilter
java.lang.Object
alpine.server.filters.ContentSecurityPolicyFilter
- All Implemented Interfaces:
javax.servlet.Filter
Implements W3C Content Security Policy (Level 1 and 2).
This filter is configured via the applications web.xml.
An example implementation in web.xml:
<filter>
<filter-name>CspFilter</filter-name>
<filter-class>alpine.filters.ContentSecurityPolicyFilter</filter-class>
<init-param>
<param-name>default-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>script-src</param-name>
<param-value>'self' 'unsafe-inline'</param-value>
</init-param>
<init-param>
<param-name>style-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>img-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>connect-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>font-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>object-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>media-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>frame-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>sandbox</param-name>
<param-value>allow-forms</param-value>
</init-param>
<init-param>
<param-name>report-uri</param-name>
<param-value>/some-report-uri</param-value>
</init-param>
<init-param>
<param-name>child-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>form-action-src</param-name>
<param-value>'self'</param-value>
</init-param>
<init-param>
<param-name>frame-ancestors</param-name>
<param-value>'none'</param-value>
</init-param>
<init-param>
<param-name>plugin-types</param-name>
<param-value>application/pdf</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CspFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
The following parameters default to 'self' if not defined: default-src, script-src, style-src, img-src, font-src, object-src, media-src, child-src and form-action.
The sandbox param defaults to null indicating that the default sandbox will be applied. The report-uri and plugin-types also default to null. frame-ancestors defaults to 'none' if not specified.
- Since:
- 1.0.0
- Author:
- Steve Springett
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
ContentSecurityPolicyFilter
public ContentSecurityPolicyFilter()
-
-
Method Details
-
init
public void init(javax.servlet.FilterConfig filterConfig) - Specified by:
initin interfacejavax.servlet.Filter
-
doFilter
public void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain) throws IOException, javax.servlet.ServletException - Specified by:
doFilterin interfacejavax.servlet.Filter- Throws:
IOExceptionjavax.servlet.ServletException
-
destroy
public void destroy()- Specified by:
destroyin interfacejavax.servlet.Filter
-