wuxw
2019-03-28 96ffc8671b110a1119958129ec2ef23f4406d9e4
java110-service/src/main/java/com/java110/service/filter/JwtFilter.java
@@ -10,10 +10,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.web.filter.GenericFilterBean;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -24,16 +21,34 @@
/**
 * Created by wuxw on 2018/5/2.
 */
public class JwtFilter extends GenericFilterBean {
public class JwtFilter implements Filter {
    private final static Logger logger = LoggerFactory.getLogger(JwtFilter.class);
    private  String[] excludedUris;
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        excludedUris = filterConfig.getInitParameter("excludedUri").split(",");
    }
    public void doFilter(final ServletRequest req, final ServletResponse res, final FilterChain chain)
            throws IOException, ServletException {
        final HttpServletRequest request = (HttpServletRequest) req;
        final HttpServletResponse response = (HttpServletResponse) res;
        String uri = request.getServletPath();
        //如果是 不能过滤的地址选择跳过
        if(isExcludedUri(uri)){
            chain.doFilter(request, response);
            return ;
        }
        String token = "";
        try {
            //获取token
@@ -55,11 +70,11 @@
                        DataTransactionFactory.pageResponseJson(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,e.getMessage(),null),
                        "UTF-8");
            }else{
                response.sendRedirect("/login");
                response.sendRedirect("/flow/login");
            }
        }catch (Exception e){
            response.sendRedirect("/login");
            response.sendRedirect("/flow/login");
        }
    }
@@ -97,4 +112,18 @@
        }
    }
    private boolean isExcludedUri(String uri) {
        if (excludedUris == null || excludedUris.length <= 0) {
            return false;
        }
        for (String ex : excludedUris) {
            uri = uri.trim();
            ex = ex.trim();
            if (uri.toLowerCase().matches(ex.toLowerCase().replace("*",".*")))
                return true;
        }
        return false;
    }
}