Jersey2.0 中ContainerRequestFilter的使用 无法拦截 求助!!!!!
定义TokenFilter
package com.xxx.cloud.filter;
import java.io.IOException;
import java.util.Map;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.PreMatching;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.ext.Provider;
import com.xx.cloud.util.TokenHolderUtil;
@Provider
@PreMatching
public class TokenFilter implements ContainerRequestFilter{
@SuppressWarnings("static-access")
public void filter(ContainerRequestContext containerRequestContext) throws IOException {
Map<String,Cookie> cookieMap = containerRequestContext.getCookies();
String tokenString = cookieMap.get("_token").getValue();
TokenHolderUtil tokenHolderUtil = new TokenHolderUtil();
tokenHolderUtil.setToken(tokenString);
}
}
web.xml
<!--用于定义 RESTful Web Service 接口-->
<servlet>
<display-name>JerseyServlet</display-name>
<servlet-name>JerseyServlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.container.ContainerRequestFilter</param-name>
<!-- 如果想加入多个拦截器,请用;隔开 -->
<param-value>com.xxx.cloud.filter.TokenFilter</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.xxx.cloud.controller</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JerseyServlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
什么ResourceConfig的实现类
ResourceConfig的实现类中注册了吗?
这问题解决了吗 我也遇到了。。