如何将数据从Filter传递到Jersey中的端点

Cri*_*bie 3 java servlets jersey servlet-filters

你可以在不使用ThreadLocal或HttpSession的情况下将一些数据从javax.servlet.Filter传递给Jersey端点吗?

而且因为第一个问题是"你为什么要这样做?":大多是好奇的.在实践中,我认为我可以使用它将身份验证期间生成的一些数据传递给端点.不使用ThreadLocal消除了在链中使用它的诱惑(希望没有必要解释为什么那是邪恶的)并且不使用HttpSession更像是一个怪癖:)

Boz*_*zho 6

尝试注射@Context.我不确定你会收到什么对象(我看到的地方WebServiceContext,这是jax-ws),但它应该包含HttpServletRequest.这样您就可以在过滤器中设置请求属性,并在其余服务中读取它们

  • 对于想要做提供者的人,我发现这很有用:http://codahale.com/what-makes-jersey-interesting-injection-providers/(不要忘记你可以用@Context注入像HttpContext或HttpServletRequest这样的东西在提供者本身内部) (2认同)