Я установил Rest-Service с CXF без пружины, который работает нормально, но теперь я хочу реализовать ContainerRequestFilter для проверки подлинности.Проблема в том, что мой ContainerRequestFilter никогда не вызывается.
Я использую CXF 3.2.6 с jaxrs-api 2.1
Объявление сервлета web.xml:
<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>
MyКласс обслуживания
@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 {
//...
}
}