浙江省城乡住房建设网站,成都建网站要多少钱,cms系统推荐,各大网站域名手头上有对所有请求做权限认证的需求#xff0c;必须要在执行rest方法之前判断用户是否是登录状态#xff0c;也就是要判断session存不存在#xff0c;这里使用ContainerRequestFilter#xff0c;从名字上也能看出来它是一个过滤器#xff0c;会将所有请求拦截下来#x… 手头上有对所有请求做权限认证的需求必须要在执行rest方法之前判断用户是否是登录状态也就是要判断session存不存在这里使用ContainerRequestFilter从名字上也能看出来它是一个过滤器会将所有请求拦截下来之后做什么处理就随我们拉。 首先是web.xml配置 servlet servlet-nameJersey REST Service/servlet-name servlet-class com.sun.jersey.spi.container.servlet.ServletContainer /servlet-class init-param param-namecom.sun.jersey.spi.container.ContainerRequestFilters/param-name !-- 如果想加入多个拦截器请用;隔开 -- param-valuecom.my.webservice.TestRequestFilter/param-value /init-param load-on-startup1/load-on-startup
/servlet
servlet-mapping servlet-nameJersey REST Service/servlet-name url-pattern/*/url-pattern
/servlet-mapping 下面是具体代码public class TestRequestFilter implements ContainerRequestFilter{Context private HttpServletRequest servletRequest;Contextprivate HttpServletResponse servletResponse;Overridepublic ContainerRequest filter(ContainerRequest creq) {System.out.println(TestRequestFilter Request: creq);if(!servletRequest.getRequestURL().toString().endsWith(/login) !servletRequest.getMethod().equals(OPTIONS)){Response response Response.ok(new ErrorJSON(99, error)).status(401).type(MediaType.APPLICATION_JSON).build();throw new WebApplicationException(response); // Throw new UnAuthorized }return creq;}}