如题 我使用 spring security oauth2.0来完成授权,在子工程中包含一个权限和客户端,通过权限工程来获取token,然后拿token去访问客户端,但是加上网关以后客户端就不能正常访问了。
客户端端口:8010 请求路径为 localhost:8010/client/r1
网关为:8000 如果直接访问 localhost:8010/client/r1 可以成功访问资源
但是如果通过网关: localhost:8000/client/r1 提示invalid_token
网关中自定义了filter:AuthFilter
public class AuthFilter extends ZuulFilter { @Override
public boolean shouldFilter() {
return true;
} @Override
public String filterType() {
return "pre";
} //数值越小越优先
@Override
public int filterOrder() {
return 0;
} @Override
public Object run() throws ZuulException {
RequestContext ctx = RequestContext.getCurrentContext();
//从安全上下文中拿 到用户身份对象
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if(!(authentication instanceof OAuth2Authentication)){
return null;
}
... 一下省略在run()函数中打断点,发现他并没有进来,不知道什么原因,求解答。
客户端端口:8010 请求路径为 localhost:8010/client/r1
网关为:8000 如果直接访问 localhost:8010/client/r1 可以成功访问资源
但是如果通过网关: localhost:8000/client/r1 提示invalid_token
网关中自定义了filter:AuthFilter
public class AuthFilter extends ZuulFilter { @Override
public boolean shouldFilter() {
return true;
} @Override
public String filterType() {
return "pre";
} //数值越小越优先
@Override
public int filterOrder() {
return 0;
} @Override
public Object run() throws ZuulException {
RequestContext ctx = RequestContext.getCurrentContext();
//从安全上下文中拿 到用户身份对象
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if(!(authentication instanceof OAuth2Authentication)){
return null;
}
... 一下省略在run()函数中打断点,发现他并没有进来,不知道什么原因,求解答。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货