How to make common ContainerResponseFilters for swagger and jersey servlet?

Viewed 790

I am using Swagger for REST api documentation, but facing issues with Container response filter filter used for jersey servlet and APIOriginFilter used for servlet for swagger. If I disable the Container response filter from jersey servlet swagger UI displays the APIs properly but the actual API call fails. Please help and suggest how i can make common entry for the container response filter of jersey and api origin filter of swagger. Below is snapshot from web.xml

<servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.spring.container.servlet.SpringServlet
        </servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.harman.ctg.rest;com.wordnik.swagger.jersey.listing</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
            <param-value>com.harman.ctg.rest.helper.CrossOriginResourceSharingFilter</param-value>
        </init-param>
        <init-param> 
          <param-name>com.sun.jersey.config.feature.DisableWADL</param-name> 
          <param-value>true</param-value> 
        </init-param> 
        <load-on-startup>1</load-on-startup>
    </servlet>
<servlet>
        <servlet-name>DefaultJaxrsConfig</servlet-name>
        <servlet-class>com.wordnik.swagger.jaxrs.config.DefaultJaxrsConfig</servlet-class>
        <init-param>
            <param-name>api.version</param-name>
            <param-value>1.0.0</param-value>
        </init-param>
        <init-param>
            <param-name>swagger.api.basepath</param-name>
            <param-value>http://localhost:8080/Pro_IDX_VAS_Web/api/3.0/api-docs</param-value>
        </init-param>
        <init-param>
          <param-name>swagger.filter</param-name>
          <param-value>com.harman.ctg.rest.helper.ApiAuthorizationFilterImpl</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/api/3.0/*</url-pattern>
    </servlet-mapping>
    <!-- Filter to secure Jersey (JAX-RS) services -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>
            org.springframework.web.filter.DelegatingFilterProxy
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/api/3.0/*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>ApiOriginFilter</filter-name>
        <filter-class>com.harman.ctg.rest.helper.CrossOriginResourceSharingFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>ApiOriginFilter</filter-name>
      <url-pattern>/api/3.0/*</url-pattern>
    </filter-mapping>
0 Answers
Related