org.jboss.resteasy.plugins.interceptors

## Class CorsFilter

- java.lang.Object
- - org.jboss.resteasy.plugins.interceptors.CorsFilter

- All Implemented Interfaces:
    ContainerRequestFilter, ContainerResponseFilter

      @PreMatching
      public class CorsFilter
      extends Object
      implements ContainerRequestFilter, ContainerResponseFilter

  Handles CORS requests both preflight and simple CORS requests. You must bind this as a singleton and set up allowedOrigins and other settings to use.
  Version:
    $Revision: 1 $
  Author:
    Bill Burke

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `allowCredentials`
    `protected String` | `allowedHeaders`
    `protected String` | `allowedMethods`
    `protected Set<String>` | `allowedOrigins`
    `protected int` | `corsMaxAge`
    `protected String` | `exposedHeaders`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CorsFilter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `checkOrigin(ContainerRequestContext requestContext, String origin)`
    `void` | `filter(ContainerRequestContext requestContext)` Filter method called before a request has been dispatched to a resource.
    `void` | `filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)` Filter method called after a response has been provided for a request (either by a `request filter` or by a matched resource method.
    `String` | `getAllowedHeaders()`
    `String` | `getAllowedMethods()` Will allow all by default
    `Set<String>` | `getAllowedOrigins()` Put "*" if you want to accept all origins
    `int` | `getCorsMaxAge()`
    `String` | `getExposedHeaders()`
    `boolean` | `isAllowCredentials()` Defaults to true
    `protected void` | `preflight(String origin, ContainerRequestContext requestContext)`
    `void` | `setAllowCredentials(boolean allowCredentials)`
    `void` | `setAllowedHeaders(String allowedHeaders)` Will allow all by default comma delimited string for Access-Control-Allow-Headers
    `void` | `setAllowedMethods(String allowedMethods)` Will allow all by default comma delimited string for Access-Control-Allow-Methods
    `void` | `setCorsMaxAge(int corsMaxAge)`
    `void` | `setExposedHeaders(String exposedHeaders)` comma delimited list

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

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

- - ### Field Detail

    - #### allowCredentials

          protected boolean allowCredentials

    - #### allowedMethods

          protected String allowedMethods

    - #### allowedHeaders

          protected String allowedHeaders

    - #### exposedHeaders

          protected String exposedHeaders

    - #### corsMaxAge

          protected int corsMaxAge

    - #### allowedOrigins

          protected Set<String> allowedOrigins

  - ### Constructor Detail

    - #### CorsFilter

          public CorsFilter()

  - ### Method Detail

    - #### getAllowedOrigins

          public Set<String> getAllowedOrigins()

      Put "*" if you want to accept all origins
      Returns:

    - #### isAllowCredentials

          public boolean isAllowCredentials()

      Defaults to true
      Returns:

    - #### setAllowCredentials

          public void setAllowCredentials(boolean allowCredentials)

    - #### getAllowedMethods

          public String getAllowedMethods()

      Will allow all by default
      Returns:

    - #### setAllowedMethods

          public void setAllowedMethods(String allowedMethods)

      Will allow all by default comma delimited string for Access-Control-Allow-Methods
      Parameters:
        `allowedMethods` -

    - #### getAllowedHeaders

          public String getAllowedHeaders()

    - #### setAllowedHeaders

          public void setAllowedHeaders(String allowedHeaders)

      Will allow all by default comma delimited string for Access-Control-Allow-Headers
      Parameters:
        `allowedHeaders` -

    - #### getCorsMaxAge

          public int getCorsMaxAge()

    - #### setCorsMaxAge

          public void setCorsMaxAge(int corsMaxAge)

    - #### getExposedHeaders

          public String getExposedHeaders()

    - #### setExposedHeaders

          public void setExposedHeaders(String exposedHeaders)

      comma delimited list
      Parameters:
        `exposedHeaders` -

    - #### filter

          public void filter(ContainerRequestContext requestContext)
                      throws IOException

      Description copied from interface: `ContainerRequestFilter`
      Filter method called before a request has been dispatched to a resource.

      Filters in the filter chain are ordered according to their `javax.annotation.Priority` class-level annotation value. If a request filter produces a response by calling `ContainerRequestContext.abortWith(javax.ws.rs.core.Response)` method, the execution of the (either pre-match or post-match) request filter chain is stopped and the response is passed to the corresponding response filter chain (either pre-match or post-match). For example, a pre-match caching filter may produce a response in this way, which would effectively skip any post-match request filters as well as post-match response filters. Note however that a responses produced in this manner would still be processed by the pre-match response filter chain.

      Specified by:
        `filter` in interface `ContainerRequestFilter`
      Parameters:
        `requestContext` - request context.
      Throws:
        `IOException` - if an I/O exception occurs.
      See Also:
        `PreMatching`

    - #### filter

          public void filter(ContainerRequestContext requestContext,
                    ContainerResponseContext responseContext)
                      throws IOException

      Description copied from interface: `ContainerResponseFilter`
      Filter method called after a response has been provided for a request (either by a `request filter` or by a matched resource method.

      Filters in the filter chain are ordered according to their `javax.annotation.Priority` class-level annotation value.

      Specified by:
        `filter` in interface `ContainerResponseFilter`
      Parameters:
        `requestContext` - request context.
        `responseContext` - response context.
      Throws:
        `IOException` - if an I/O exception occurs.

    - #### preflight

          protected void preflight(String origin,
                       ContainerRequestContext requestContext)
                            throws IOException

      Throws:
        `IOException`

    - #### checkOrigin

          protected void checkOrigin(ContainerRequestContext requestContext,
                         String origin)

Copyright © 2014. All Rights Reserved.