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());
}
/**