没有弹簧的Cxf ContainerRequestFilter

时间:2018-12-02 15:05:58

标签: rest cxf

我用CXF设置了一个没有spring的Rest-Service,它工作正常,但是现在我想实现一个ContainerRequestFilter来进行身份验证。 问题是我的ContainerRequestFilter从未被调用。

我使用jaxrs-api 2.1的CXF 3.2.6

web.xml Servlet声明:

   <servlet>
    <servlet-name>RestApi</servlet-name>
    <servlet-class>
         org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
    </servlet-class>
    <init-param>
       <param-name>jaxrs.serviceClasses</param-name>
       <param-value> 
         webservice.core.rest.facade.RestWsFacadeImpl
       </param-value>
      </init-param>     
</servlet>

<servlet-mapping>
    <servlet-name>RestApi</servlet-name>
<url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

我的服务班

@Path("/") 
public class RestWsFacadeImpl { 
@GET
@Path("/debug")
@Secured
    public String debug() {
        return "test";
    }   
}

我的命名注释类:

@Target({TYPE, METHOD})
@Retention(RUNTIME)
@NameBinding
public @interface Secured {}

我的过滤器类

@Secured
@PreMatching
@Provider
public class AuthenticationFilter implements ContainerRequestFilter {

   @Override
   public void filter(ContainerRequestContext requestContext) throws IOException {

    //...
   }

}

0 个答案:

没有答案