如题,项目中采用了Jersey+Spring实现Restful webservice,现在要对接口进行身份验证,方案已经确定,但如何实现类似于struts或SpringMVC的interceptor的效果?对所有请求进行身份验证
1,备选方案是利用J2EE的filter
2,想通过Spring的AOP来实现,切面是Jersey的Resource,但怎样注入HttpServletRequest呢?
没分了,求大神帮忙看看
先用一个filter每次将request对象放在一个ThreadLocal里,Aop切面每次从ThreadLocal里去取当前线程的request对象,应该可以满足你的需求。
import javax.ws.rs.core.Context;
.........................
@Context
private HttpServletRequest request;
Jersey本身就提供了Request filter和Response filter机制,你只要实现对应的接口,并加入到Jersey的启动配置就可以了.
在实现接口时,可以取到containerRequest,这是个对ServletRequest的封装,可以取到任何request数据。