From fe7ce27a943cf66232ea67d6f853ce697e1cc3a3 Mon Sep 17 00:00:00 2001 From: zhangdaiscott <zhangdaiscott@163.com> Date: Tue, 19 Jul 2022 23:03:15 +0800 Subject: [PATCH] 【示例】sentinel ip和参数授权规则拦截器(黑名单白名单) --- jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java index 6a9d5c0..63ba43a 100644 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java +++ b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java @@ -1,12 +1,17 @@ package org.jeecg.starter.cloud.interceptor; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.util.IpUtils; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; /** - * sentinel 授权规则拦截器 + * 【示例】sentinel ip和参数授权规则拦截器(黑名单白名单) + * 1. 有参数origin的时候走参数拦截规则 + * 2. 当参数为空时走ip拦截模式 + * * @author zyf */ @Component @@ -15,8 +20,12 @@ public class DefaultRequestOriginParser implements RequestOriginParser { public String parseOrigin(HttpServletRequest request) { //基于请求参数,origin对应授权规则中的流控应用名称,也可通过getHeader传参 String origin = request.getParameter("origin"); - - //TODO 此处做个通过IP做白名单的例子 - return origin; + if (StringUtils.isNotEmpty(origin)) { + return origin; + } else { + //当参数为空使用ip拦截模式 + String ip = IpUtils.getIpAddr(request); + return ip; + } } } -- libgit2 0.22.2