From c7968826b60e4be42d3fc1738314f84810975c59 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Wed, 24 Aug 2022 18:07:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=20spliceTwoUrl=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=88=B0=20SaFoxUtil=20=E5=B7=A5=E5=85=B7=E7=B1=BB?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/dev33/satoken/strategy/SaStrategy.java | 43 ++++--------------- .../java/cn/dev33/satoken/util/SaFoxUtil.java | 26 +++++++++++ .../cn/dev33/satoken/config/SaSsoConfig.java | 9 ++-- 3 files changed, 39 insertions(+), 39 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java b/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java index eaef034b..f3f127a0 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java @@ -172,7 +172,7 @@ public final class SaStrategy { }; /** - * 从元素上获取注解(注解鉴权内部实现) + * 从元素上获取注解 *

参数 [element元素,要获取的注解类型] */ public BiFunction , Annotation> getAnnotation = (element, annotationClass)->{ @@ -182,7 +182,6 @@ public final class SaStrategy { /** * 判断一个 Method 或其所属 Class 是否包含指定注解 - * *

参数 [Method, 注解] */ public BiFunction isAnnotationPresent = (method, annotationClass) -> { @@ -190,29 +189,6 @@ public final class SaStrategy { me.getAnnotation.apply(method.getDeclaringClass(), SaIgnore.class) != null; }; - /** - * 拼接两个url - *

例如:url1=http://domain.cn,url2=/sso/auth,则返回:http://domain.cn/sso/auth - *

参数 [第一个url, 第二个url] - */ - public BiFunction spliceTwoUrl = (url1, url2) -> { - // q1、任意一个为空,则直接返回另一个 - if(url1 == null) { - return url2; - } - if(url2 == null) { - return url1; - } - - // q2、如果 url2 以 http 开头,将其视为一个完整地址 - if(url2.startsWith("http")) { - return url2; - } - - // q3、将两个地址拼接在一起 - return url1 + url2; - }; - // // 重写策略 set连缀风格 @@ -275,7 +251,7 @@ public final class SaStrategy { } /** - * 从元素上获取注解(注解鉴权内部实现) + * 从元素上获取注解 *

参数 [element元素,要获取的注解类型] * @param getAnnotation / * @return 对象自身 @@ -286,15 +262,14 @@ public final class SaStrategy { } /** - * 拼接两个url - *

例如:url1=http://domain.cn,url2=/sso/auth,则返回:http://domain.cn/sso/auth - *

参数 [第一个url, 第二个url] - * - * @param spliceTwoUrl 要设置的 spliceTwoUrl + * 判断一个 Method 或其所属 Class 是否包含指定注解 + *

参数 [Method, 注解] + * @param isAnnotationPresent / + * @return 对象自身 */ - public void setSpliceTwoUrl(BiFunction spliceTwoUrl) { - this.spliceTwoUrl = spliceTwoUrl; + public SaStrategy setIsAnnotationPresent(BiFunction isAnnotationPresent) { + this.isAnnotationPresent = isAnnotationPresent; + return this; } - } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java index d0fcdb74..50af1be7 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java @@ -333,6 +333,32 @@ public class SaFoxUtil { } return joinSharpParam(url, key + "=" + value); } + + /** + * 拼接两个url + *

例如:url1=http://domain.cn,url2=/sso/auth,则返回:http://domain.cn/sso/auth

+ * + * @param url1 第一个url + * @param url2 第二个url + * @return 拼接完成的url + */ + public static String spliceTwoUrl(String url1, String url2) { + // q1、任意一个为空,则直接返回另一个 + if(url1 == null) { + return url2; + } + if(url2 == null) { + return url1; + } + + // q2、如果 url2 以 http 开头,将其视为一个完整地址 + if(url2.startsWith("http")) { + return url2; + } + + // q3、将两个地址拼接在一起 + return url1 + url2; + } /** * 将数组的所有元素使用逗号拼接在一起 diff --git a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java index 0d8253d8..5ec0a52d 100644 --- a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java +++ b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/config/SaSsoConfig.java @@ -7,7 +7,6 @@ import java.util.function.Function; import java.util.function.Supplier; import cn.dev33.satoken.exception.SaTokenException; -import cn.dev33.satoken.strategy.SaStrategy; import cn.dev33.satoken.util.SaFoxUtil; import cn.dev33.satoken.util.SaResult; @@ -323,28 +322,28 @@ public class SaSsoConfig implements Serializable { * @return 获取拼接url:Server 端单点登录授权地址 */ public String splicingAuthUrl() { - return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getAuthUrl()); + return SaFoxUtil.spliceTwoUrl(getServerUrl(), getAuthUrl()); } /** * @return 获取拼接url:Server 端的 ticket 校验地址 */ public String splicingCheckTicketUrl() { - return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getCheckTicketUrl()); + return SaFoxUtil.spliceTwoUrl(getServerUrl(), getCheckTicketUrl()); } /** * @return 获取拼接url:Server 端查询 userinfo 地址 */ public String splicingUserinfoUrl() { - return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getUserinfoUrl()); + return SaFoxUtil.spliceTwoUrl(getServerUrl(), getUserinfoUrl()); } /** * @return 获取拼接url:Server 端单点注销地址 */ public String splicingSloUrl() { - return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getSloUrl()); + return SaFoxUtil.spliceTwoUrl(getServerUrl(), getSloUrl()); } /**