 
	 博客信息
		博客信息
	Zuul 请求过滤配置
比如我们登录某个系统 需要身份验证,用户名密码啥的;
我们请求服务,也可以来设置身份验证,也就是过滤非法请求;Zuul通过ZuulFilter过滤器实现;
一般具体实现的话 每次经过Zuul服务网关 我们都对带来的token进行有效性验证;
我们先定义一个 AccessFilter类:
package com.java1234.filter;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
public class AccessFilter extends ZuulFilter{
	Logger logger=Logger.getLogger(AccessFilter.class);
	
	/**
	 * 判断该过滤器是否要被执行
	 */
	@Override
	public boolean shouldFilter() {
		// TODO Auto-generated method stub
		return true;
	}
	/**
	 * 过滤器的具体执行逻辑
	 */
	@Override
	public Object run() throws ZuulException {
		RequestContext ctx = RequestContext.getCurrentContext();
		HttpServletRequest request = ctx.getRequest();
		String parameter = request.getParameter("accessToken");
		logger.info(request.getRequestURL().toString()+" 请求访问");
		if(parameter==null){
			logger.error("accessToken为空!");
			ctx.setSendZuulResponse(false);
			ctx.setResponseStatusCode(401);
			ctx.setResponseBody("{\"result\":\"accessToken is empty!\"}");
			return null;
		}
		//  token判断逻辑
		logger.info(request.getRequestURL().toString()+" 请求成功");
		return null;
	}
	/**
	 * 过滤器的类型 这里用pre,代表会再请求被路由之前执行
	 */
	@Override
	public String filterType() {
		// TODO Auto-generated method stub
		return "pre";
	}
	/**
	 * 过滤器的执行顺序
	 */
	@Override
	public int filterOrder() {
		// TODO Auto-generated method stub
		return 0;
	}
}然后再开启下 Filter配置:
package com.java1234.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.java1234.filter.AccessFilter;
/**
 * Zuul配置
 * @author Administrator
 *
 */
@Configuration
public class ZuulConfig {
	@Bean
	public AccessFilter accessFilter(){
		return new AccessFilter();
	}
}配置完后,我们 访问:http://zuul.java1234.com:3001/java1234/studentServer/student/list
发现歇逼了:
{"result":"accessToken is empty!"}我们带个 accessToken http://zuul.java1234.com:3001/java1234/studentServer/student/list?accessToken=3232
就返回了结果;
当然 token的生成和验证 这里我们不细讲了,具体要根据设计来;
 关注Java1234微信公众号
					关注Java1234微信公众号
				 
				 博主信息
					博主信息
				 
				 按日志类别
					按日志类别
				 按日志日期
					按日志日期
				 友情链接
					友情链接