package com.luheng.bloggatewayzuul.filter;
import com.luheng.bloggatewayzuul.util.RedisUtil;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class LoginFilter extends ZuulFilter {
@Resource
private RedisUtil redisUtil;
@Override
public String filterType() {
return FilterConstants.PRE_TYPE;
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
RequestContext ctx = RequestContext.getCurrentContext();
return ctx.sendZuulResponse();
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
System.out.println(request.getRequestURI());
if (request.getRequestURI().contains("blogComment"))
{
String token = request.getHeader("token");
if(redisUtil.existKey(token)){
ctx.setSendZuulResponse(true);
System.out.println("通过");
} else {
ctx.setSendZuulResponse(false);
HttpServletResponse response = ctx.getResponse();
response.setCharacterEncoding("UTF-8");
ctx.setResponseBody("你还没有登录或登录已失效,请重新登录");
}
} else {
ctx.setSendZuulResponse(true);
}
return null;
}
}