猿问

JAX-RS剩余过滤器不调用

我有一个需要实现安全性的API。


但是不调用过滤器。我的电话直接转接到端点...


我的安全界面


@NameBinding

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.TYPE,ElementType.METHOD})

public @interface Seguro {}

我的筛选器


@Seguro

@Provider

@Priority(Priorities.AUTHENTICATION)

public class FiltroAutenticacao implements ContainerRequestFilter {


@Override

public void filter(ContainerRequestContext requestContext) throws IOException {


    String authorizationHeader = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);


    if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {

        throw new NotAuthorizedException("Authorization header precisa ser provido");

    }


    String token = authorizationHeader.substring("Bearer".length()).trim();


    try {

        ...


    } catch (Exception e) {

        ...

    }


}


}

我的方法需要进行身份验证。


@Seguro

@GET

@Path("/metodo-teste")

@Produces("application/json")

public Response medotoTeste(@QueryParam("codigo") String codigo){       


    ModeloTesteTO to = new ModeloTesteTO("codigo enviado foi " + codigo);       

    return Response.ok(to, MediaType.APPLICATION_JSON).build();

}

我还需要执行其他任何操作吗?


HUWWW
浏览 161回答 1
1回答

慕村9548890

我发现了这个问题,是在Paul建议尝试在Glassfish上发布Jersey 2的应用程序之后,我发现了Glassfish版本中的不兼容问题。Glassfish 4.0不支持jersey 2,但4.1.2版本是。我迁移了服务器并解决了问题。
随时随地看视频慕课网APP

相关分类

Java
我要回答