Cómo omitir la ruta en el filtro de servlet con anotaciones de seguridad de Jersey en Java

He implementado el servicio REST usando Jersey. Para dar más seguridad, he agregado la anotación de seguridad de jersey en el método REST (@PermitAll, @DenyAll)

A continuación se muestra mi servicio REST de muestra:

@GET
@Path("/getall")
@Produces(MediaType.APPLICATION_JSON)
@PermitAll
public String getChartSupportedData(@QueryParam("items") int result) {
    // my code goes here
}

Pero el problema es que anteriormente he usadojavax.servlet.Filter filtro para validar URI.

web.xml:

<filter>
    <filter-name>ApplicationFilter</filter-name>
    <filter-class>web.filter.ApplicationFilter</filter-class>
</filter>
<filter-mapping>
       <filter-name>ApplicationFilter</filter-name>
       <url-pattern>/rest/api/*</url-pattern>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>ASYNC</dispatcher>           
</filter-mapping>

De acuerdo con el acceso a algunos servicios REST,HttpServletRequest debe contener un token válido (generado por la aplicación).

Algunos puntos finales REST no requieren un token para acceder al servicio. En ese caso, tengo que evitar eso en la implementación del filtro:

private static String[] bypassPaths = { "/data/getall" };

Entonces mi requerimiento es algo así.

Si declaramos algún punto final REST como@PermitAll esa ruta no debería haber declarado en el filtro como ruta de derivación para que cualquiera pueda acceder a ella sin un token válido.

Pero el problema es que el filtro siempre se filtra cuando la solicitud ingresa al servidor y, si no está en la matriz de derivación, la solicitud no continúa, incluso si lo declaro como@PermitAll.

Me gustaría saber si puedo combinar esas dos opciones de seguridad en la misma aplicación web.

Respuestas a la pregunta(1)

Su respuesta a la pregunta