Java Jersey:将值从ContainerRequestFilter传递到端点
我使用的是Jersey 2.9,我创建了一个过滤器,它将获取一个加密的头值,并对其进行解密,然后将其传递给调用的端点。我不知道如何做到这一点,我一直在互联网上搜索,但没有找到一个具体的例子,我想做什么。过滤器被调用时,我只是在将值从它传递到端点时遇到问题 你们能帮帮我吗 以下是一些示例代码:Java Jersey:将值从ContainerRequestFilter传递到端点,java,rest,servlets,jersey,Java,Rest,Servlets,Jersey,我使用的是Jersey 2.9,我创建了一个过滤器,它将获取一个加密的头值,并对其进行解密,然后将其传递给调用的端点。我不知道如何做到这一点,我一直在互联网上搜索,但没有找到一个具体的例子,我想做什么。过滤器被调用时,我只是在将值从它传递到端点时遇到问题 你们能帮帮我吗 以下是一些示例代码: public class MyFilter implements ContainerRequestFilter { @Override public void filter(Contain
public class MyFilter implements ContainerRequestFilter
{
@Override
public void filter(ContainerRequestContext requestContext) throws WebApplicationException {
String EncryptedString = requestContext.getHeaderString("Authentication");
/* Doing some methods to remove encryption */
/* Get a string which I want to pass to the endpoint which was called on, in this example: localhost:4883/rest/test */
}
}
@Path("rest")
public class restTest
{
@Path("test")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String Testing(){
/* Process the value from the MyFilter */
}
}
您可以轻松修改标题或添加另一个标题:
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
requestContext.getHeaders().add("X-Authentication-decrypted", decryptedValue);
}
此值可以注入到资源方法中:
@GET
@Produces(MediaType.APPLICATION_JSON)
public String Testing(@HeaderParam("X-Authentication-decrypted") String auth) {
}
我也看到过该线程的可能重复,但作为Java新手,我不知道如何实现它,如果有人能提供我上面示例中的一段代码,我将不胜感激。因为这个问题比链接的问题更具体,我添加了一个答案。啊,这正是我想要的。这似乎是一个非常简单的解决方案,我不知道它可以像那样被修复。非常感谢。