import org.springframework.web.filter.GenericFilterBean;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
 
// 使用Sa-Token的API进行签名验证的过滤器
public class ApiSignFilter extends GenericFilterBean {
 
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
        HttpServletRequest request = (HttpServletRequest) req;
        // 检查是否为API请求
        if ("GET".equalsIgnoreCase(request.getMethod()) || "POST".equalsIgnoreCase(request.getMethod())) {
            // 验证签名
            if (StpUtil.checkApiSign(request.getParameterMap())) {
                // 如果签名验证通过,继续执行后续的过滤器或处理请求
                chain.doFilter(req, res);
            } else {
                // 如果验证失败,返回错误信息
                SaResult.error("签名验证失败").setCode(401).write(response);
            }
        } else {
            // 如果不是API请求,直接继续执行后续的过滤器或处理请求
            chain.doFilter(req, res);
        }
    }
}这段代码定义了一个过滤器,用于在Spring Boot应用中进行API接口的签名安全验证。它检查请求是否为API请求,并使用Sa-Token提供的checkApiSign方法来验证签名。如果验证通过,则继续请求的处理;如果验证失败,则返回错误信息并设置HTTP状态码为401。这个过滤器可以被集成到Spring Boot应用中,用于增强API接口的安全性。