Commit fe7ce27a943cf66232ea67d6f853ce697e1cc3a3
1 parent
956b1c21
【示例】sentinel ip和参数授权规则拦截器(黑名单白名单)
Showing
1 changed file
with
13 additions
and
4 deletions
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java
1 | package org.jeecg.starter.cloud.interceptor; | 1 | package org.jeecg.starter.cloud.interceptor; |
2 | 2 | ||
3 | import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; | 3 | import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; |
4 | +import org.apache.commons.lang3.StringUtils; | ||
5 | +import org.jeecg.common.util.IpUtils; | ||
4 | import org.springframework.stereotype.Component; | 6 | import org.springframework.stereotype.Component; |
5 | 7 | ||
6 | import javax.servlet.http.HttpServletRequest; | 8 | import javax.servlet.http.HttpServletRequest; |
7 | 9 | ||
8 | /** | 10 | /** |
9 | - * sentinel 授权规则拦截器 | 11 | + * 【示例】sentinel ip和参数授权规则拦截器(黑名单白名单) |
12 | + * 1. 有参数origin的时候走参数拦截规则 | ||
13 | + * 2. 当参数为空时走ip拦截模式 | ||
14 | + * | ||
10 | * @author zyf | 15 | * @author zyf |
11 | */ | 16 | */ |
12 | @Component | 17 | @Component |
@@ -15,8 +20,12 @@ public class DefaultRequestOriginParser implements RequestOriginParser { | @@ -15,8 +20,12 @@ public class DefaultRequestOriginParser implements RequestOriginParser { | ||
15 | public String parseOrigin(HttpServletRequest request) { | 20 | public String parseOrigin(HttpServletRequest request) { |
16 | //基于请求参数,origin对应授权规则中的流控应用名称,也可通过getHeader传参 | 21 | //基于请求参数,origin对应授权规则中的流控应用名称,也可通过getHeader传参 |
17 | String origin = request.getParameter("origin"); | 22 | String origin = request.getParameter("origin"); |
18 | - | ||
19 | - //TODO 此处做个通过IP做白名单的例子 | ||
20 | - return origin; | 23 | + if (StringUtils.isNotEmpty(origin)) { |
24 | + return origin; | ||
25 | + } else { | ||
26 | + //当参数为空使用ip拦截模式 | ||
27 | + String ip = IpUtils.getIpAddr(request); | ||
28 | + return ip; | ||
29 | + } | ||
21 | } | 30 | } |
22 | } | 31 | } |