Java JAX-RS,我的过滤器不工作

Java JAX-RS,我的过滤器不工作,java,web-services,rest,filter,name-binding,Java,Web Services,Rest,Filter,Name Binding,我的工作是: 但我的过滤器没有触发,我的呼叫直接传递到端点 我的安全界面: @Qualifier @Retention(RUNTIME) @Target({METHOD, FIELD, PARAMETER, TYPE}) public @interface Secure { } 我的过滤器: @Secure @Provider @Priority(Priorities.AUTHENTICATION) public cla

我的工作是:

但我的过滤器没有触发,我的呼叫直接传递到端点

我的安全界面:

    @Qualifier
    @Retention(RUNTIME)
    @Target({METHOD, FIELD, PARAMETER, TYPE})
    public @interface Secure {
    }
我的过滤器:

    @Secure
    @Provider
    @Priority(Priorities.AUTHENTICATION)
     public class AuthenticationFilter implements ContainerRequestFilter {

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

    // Get the HTTP Authorization header from the request
    String authorizationHeader = 
        requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);

    // Check if the HTTP Authorization header is present and formatted correctly 
    if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {
        throw new NotAuthorizedException("Authorization header must be provided");
    }

    // Extract the token from the HTTP Authorization header
    String token = authorizationHeader.substring("Bearer".length()).trim();

    try {

        Token tk = new Token();
        tk.validarToken(token);

    } catch (Exception e) {
        requestContext.abortWith(
            Response.status(Response.Status.UNAUTHORIZED).build());
    }
}
我的端点:

        package api;

        import filters.Secure;
        import javax.ws.rs.Consumes;
        import javax.ws.rs.GET;
        import javax.ws.rs.Path;
        import javax.ws.rs.Produces;
        import javax.ws.rs.core.Response;

        @Path("service")
        public class Service {

        @GET
        @Secure
        @Path("/sapo")
        @Produces("application/json")
        @Consumes("application/json")
        public Response mySecuredMethod() {      
        return Response.ok("sapo").build();
       }
       }
还有我的web.xml(可以吗?)


泽西塞尔维特酒店
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
应用程序编程接口
导入javax.ws.rs.container.ContainerRequestFilter
filters.AuthenticationFilter;api.服务
1.
泽西塞尔维特酒店
/api/*
我在堆栈中阅读了很多相关的问题,但没有发现错误

有人知道吗


提前感谢。

@NameBinding

替换
@Qualifier
-死灵法师徽章来了-

首先,默认情况下,过滤器是全局应用的。因此,如果您不需要将此过滤器限制为特定资源,您甚至不需要“安全”界面


但是,如果确实要在某些特定资源上使用筛选器,则需要使用for Jersey,而不是注释。

回答得太晚了,但解决此问题的方法是将AuthenticationFilter添加到类中

public class App extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> classes = new HashSet<>();
        classes.add(MyApis.class);
        classes.add(AuthenticationFilter.class);
        return classes;
    }
}
公共类应用程序扩展应用程序{
@凌驾
public Set>classes=new HashSet();
添加(myapi.class);
添加(AuthenticationFilter.class);
返回类;
}
}

这并不能回答这个问题。一旦你有足够的钱,你将能够;相反这就是答案!可能是。如果是这样,你必须详细说明你的答案。否则,将其作为评论发布。因为堆栈溢出有一些标准。
public class App extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> classes = new HashSet<>();
        classes.add(MyApis.class);
        classes.add(AuthenticationFilter.class);
        return classes;
    }
}