gpt4 book ai didi

java - Jersey 2 请求过滤器在此代码中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:00 25 4
gpt4 key购买 nike

我已经使用 Jersey 2 实现了注释,但不知何故代码没有达到这一点。

这些是我的类(class):

安全

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 { }

安全实现:

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);
}
}

测试类

@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;
}
}

它给了我一个响应,而不是给我一个 401 错误。那么,我在这里做错了什么?

最佳答案

通常 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)

关于java - Jersey 2 请求过滤器在此代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53149812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com