package com.qianwen.smartman.common.filter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import com.qianwen.smartman.common.constant.DictConstant; public class PreviewFilter implements Filter { private static final List KEYS = new ArrayList(); static { KEYS.add(DictConstant.NOTICE_CODE); KEYS.add("process"); KEYS.add("work"); KEYS.add("token"); } public void init(FilterConfig filterConfig) { } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest; String path = httpServletRequest.getServletPath(); String method = httpServletRequest.getMethod(); String get = "GET"; if (method.equals(get) || KEYS.stream().anyMatch(path::contains)) { filterChain.doFilter(servletRequest, servletResponse); } else { throw new RuntimeException("演示环境暂时无法操作!"); } } public void destroy() { } }