【发布时间】:2018-11-24 03:13:27
【问题描述】:
我有一个过滤器类
@Provider
@PreMatching
@Priority(1700)
A_authenticationFilter implements ContainerRequestFilter
{
try {
// Logic
}
catch {
throw Exception
}
}
另一个过滤器类
@Provider
@PreMatching
@Priority(5000)
B_authenticationFilter implements ContainerRequestFilter,ContainerResponseFilter {
@Context
ResourceInfo resourceInfo;
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) { }
@Override
public void filter(ContainerRequestContext requestContext { }
}
控制器类 //JAX-RS 控制器
@Path
TokenServicesImpl {
@POST
@Path
public Response login() {
}
}
发生的情况是,当我想调用 Controller 类的登录时,它会通过第一个 A_authenticationFilter 并且由于标头中的一些验证错误而失败,因此登录方法不会被执行并且 resourceInfo.getResourceMethod() 在 B_authenticationFilter 的过滤器中解析为 null(ContainerRequestContext requestContext, ContainerResponseContext responseContext)。
我想只有在执行控制器方法时才会填充 resourceInfo。如果登录方法没有被执行,那么有没有其他方法可以让我使用资源方法名称填充 resourceInfo 对象,即其中的“登录”?
【问题讨论】:
-
您能否添加一些代码来解释您的问题。谢谢。并尝试详细说明。假设我们对您的代码一无所知,重新阅读您的问题几次,并尝试填补您认为我们需要知道的所有漏洞以帮助您。
-
@Paul Samsotha 抱歉,问题不清楚。这是一个更具描述性的
标签: jax-rs