重构 spliceTwoUrl 方法到 SaFoxUtil 工具类中

This commit is contained in:
click33 2022-08-24 18:07:51 +08:00
parent c74dfac8f2
commit c7968826b6
3 changed files with 39 additions and 39 deletions

View File

@ -172,7 +172,7 @@ public final class SaStrategy {
};
/**
* 从元素上获取注解注解鉴权内部实现
* 从元素上获取注解
* <p> 参数 [element元素要获取的注解类型]
*/
public BiFunction<AnnotatedElement, Class<? extends Annotation> , Annotation> getAnnotation = (element, annotationClass)->{
@ -182,7 +182,6 @@ public final class SaStrategy {
/**
* 判断一个 Method 或其所属 Class 是否包含指定注解
*
* <p> 参数 [Method, 注解]
*/
public BiFunction<Method, AnnotatedElement, Boolean> isAnnotationPresent = (method, annotationClass) -> {
@ -190,29 +189,6 @@ public final class SaStrategy {
me.getAnnotation.apply(method.getDeclaringClass(), SaIgnore.class) != null;
};
/**
* 拼接两个url
* <p> 例如url1=http://domain.cnurl2=/sso/auth则返回http://domain.cn/sso/auth
* <p> 参数 [第一个url, 第二个url]
*/
public BiFunction<String, String, String> 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 {
}
/**
* 从元素上获取注解注解鉴权内部实现
* 从元素上获取注解
* <p> 参数 [element元素要获取的注解类型]
* @param getAnnotation /
* @return 对象自身
@ -286,15 +262,14 @@ public final class SaStrategy {
}
/**
* 拼接两个url
* <p> 例如url1=http://domain.cnurl2=/sso/auth则返回http://domain.cn/sso/auth
* <p> 参数 [第一个url, 第二个url]
*
* @param spliceTwoUrl 要设置的 spliceTwoUrl
* 判断一个 Method 或其所属 Class 是否包含指定注解
* <p> 参数 [Method, 注解]
* @param isAnnotationPresent /
* @return 对象自身
*/
public void setSpliceTwoUrl(BiFunction<String, String, String> spliceTwoUrl) {
this.spliceTwoUrl = spliceTwoUrl;
public SaStrategy setIsAnnotationPresent(BiFunction<Method, AnnotatedElement, Boolean> isAnnotationPresent) {
this.isAnnotationPresent = isAnnotationPresent;
return this;
}
}

View File

@ -334,6 +334,32 @@ public class SaFoxUtil {
return joinSharpParam(url, key + "=" + value);
}
/**
* 拼接两个url
* <p> 例如url1=http://domain.cnurl2=/sso/auth则返回http://domain.cn/sso/auth </p>
*
* @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;
}
/**
* 将数组的所有元素使用逗号拼接在一起
* @param arr 数组

View File

@ -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 获取拼接urlServer 端单点登录授权地址
*/
public String splicingAuthUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getAuthUrl());
return SaFoxUtil.spliceTwoUrl(getServerUrl(), getAuthUrl());
}
/**
* @return 获取拼接urlServer 端的 ticket 校验地址
*/
public String splicingCheckTicketUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getCheckTicketUrl());
return SaFoxUtil.spliceTwoUrl(getServerUrl(), getCheckTicketUrl());
}
/**
* @return 获取拼接urlServer 端查询 userinfo 地址
*/
public String splicingUserinfoUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getUserinfoUrl());
return SaFoxUtil.spliceTwoUrl(getServerUrl(), getUserinfoUrl());
}
/**
* @return 获取拼接urlServer 端单点注销地址
*/
public String splicingSloUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getSloUrl());
return SaFoxUtil.spliceTwoUrl(getServerUrl(), getSloUrl());
}
/**