Class WhiteListFilter
java.lang.Object
tech.riemann.nif.starter.white.WhiteListFilter
- All Implemented Interfaces:
jakarta.servlet.Filter
白名单过滤器
实现Servlet Filter接口,用于限制特定URL的访问IP
主要功能: 1. 根据配置的白名单规则过滤请求 2. 支持CIDR格式的IP范围匹配 3. 对不在白名单范围内的IP返回401未授权
使用场景: - 限制敏感接口(如Actuator监控接口)的访问IP - 保护内部API不被外部访问 - 实现IP级别的访问控制
配置示例:
nif:
white:
list:
- url: /actuator/**
cidr: 192.168.1.0/24,10.0.0.0/8
- url: /admin/**
cidr: 172.16.0.0/16
- Author:
- Kerbores(kerbores@riemann.tech)
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
WhiteListFilter
public WhiteListFilter()
-
-
Method Details
-
init
public void init(jakarta.servlet.FilterConfig filterConfig) throws jakarta.servlet.ServletException 过滤器初始化方法- Specified by:
initin interfacejakarta.servlet.Filter- Parameters:
filterConfig- 过滤器配置- Throws:
jakarta.servlet.ServletException- 初始化失败时抛出
-
doFilter
public void doFilter(jakarta.servlet.ServletRequest srequest, jakarta.servlet.ServletResponse sresponse, jakarta.servlet.FilterChain chain) throws IOException, jakarta.servlet.ServletException 执行过滤逻辑处理流程: 1. 获取请求IP地址 2. 获取请求URL 3. 匹配白名单规则 4. 如果URL匹配但IP不在白名单内,返回401 5. 否则继续过滤器链
- Specified by:
doFilterin interfacejakarta.servlet.Filter- Parameters:
srequest- Servlet请求sresponse- Servlet响应chain- 过滤器链- Throws:
IOException- IO异常jakarta.servlet.ServletException- Servlet异常
-
destroy
public void destroy()过滤器销毁方法- Specified by:
destroyin interfacejakarta.servlet.Filter
-