如何为swagger和jersey servlet制作常见的ContainerResponseFilters?

时间:2013-12-13 07:58:34

标签: rest jersey swagger

我正在使用Swagger进行REST api文档,但是遇到了用于jersey servlet的Container响应过滤器过滤器和用于swagger的servlet的APIOriginFilter的问题。如果我从jersey servlet中禁用Container响应过滤器,则swagger UI会正确显示API,但实际的API调用将失败。 请帮助并建议我如何为盛装的球衣和api原点过滤器的容器响应过滤器进行共同输入。 以下是来自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 个答案:

没有答案