[英]Jersey 2 request filter are not working in this code
I have implemented an annotation using the Jersey 2, but somehow the code is not reaching that point. 我已经使用Jersey 2实现了注释,但是不知何故代码未达到该点。
These are my classes : 这些是我的课程:
Secured 担保的
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
import javax.ws.rs.NameBinding;
@NameBinding
@Retention(RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Secured { }
SecureImplementation: 安全实施:
import javax.annotation.Priority;
import javax.ws.rs.Priorities;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.Provider;
@Secured
@Provider
@Priority(Priorities.AUTHENTICATION)
public class SecureImplementation implements ContainerRequestFilter
{
@Override
public void filter(ContainerRequestContext requestContext) throws
IOException {
System.out.println("Inside Something");
throw new WebApplicationException(Status.UNAUTHORIZED);
}
}
TestingClass 测试类
@Path("/checkClass")
public class TestingClass{
@Secured
@Path("/checkFilter")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Map<String, String> testing(Input input)
throws Exception {
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("result","Success");
return responseMap;
}
}
It is giving me a response instead of giving me a 401 Error. 它给了我一个响应,而不是给我一个401错误。 So, what am I doing wrong here? 那么,我在这里做错了什么?
Usually TestingClass
should be registered inside application class together with the filter, eg: 通常, TestingClass
应该与过滤器一起在应用程序类中注册,例如:
@ApplicationPath("checkClass")
public class MyApplication extends ResourceConfig {
public MyApplication () {
register(TestingClass.class);
register(SecureImplementation.class);
}
}
@Path("/checkFilter")
public class TestingClass{
@Secured
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Map<String, String> testing(Input input)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.