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

View File

@ -334,6 +334,32 @@ public class SaFoxUtil {
return joinSharpParam(url, key + "=" + value); 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 数组 * @param arr 数组

View File

@ -7,7 +7,6 @@ import java.util.function.Function;
import java.util.function.Supplier; import java.util.function.Supplier;
import cn.dev33.satoken.exception.SaTokenException; import cn.dev33.satoken.exception.SaTokenException;
import cn.dev33.satoken.strategy.SaStrategy;
import cn.dev33.satoken.util.SaFoxUtil; import cn.dev33.satoken.util.SaFoxUtil;
import cn.dev33.satoken.util.SaResult; import cn.dev33.satoken.util.SaResult;
@ -323,28 +322,28 @@ public class SaSsoConfig implements Serializable {
* @return 获取拼接urlServer 端单点登录授权地址 * @return 获取拼接urlServer 端单点登录授权地址
*/ */
public String splicingAuthUrl() { public String splicingAuthUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getAuthUrl()); return SaFoxUtil.spliceTwoUrl(getServerUrl(), getAuthUrl());
} }
/** /**
* @return 获取拼接urlServer 端的 ticket 校验地址 * @return 获取拼接urlServer 端的 ticket 校验地址
*/ */
public String splicingCheckTicketUrl() { public String splicingCheckTicketUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getCheckTicketUrl()); return SaFoxUtil.spliceTwoUrl(getServerUrl(), getCheckTicketUrl());
} }
/** /**
* @return 获取拼接urlServer 端查询 userinfo 地址 * @return 获取拼接urlServer 端查询 userinfo 地址
*/ */
public String splicingUserinfoUrl() { public String splicingUserinfoUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getUserinfoUrl()); return SaFoxUtil.spliceTwoUrl(getServerUrl(), getUserinfoUrl());
} }
/** /**
* @return 获取拼接urlServer 端单点注销地址 * @return 获取拼接urlServer 端单点注销地址
*/ */
public String splicingSloUrl() { public String splicingSloUrl() {
return SaStrategy.me.spliceTwoUrl.apply(getServerUrl(), getSloUrl()); return SaFoxUtil.spliceTwoUrl(getServerUrl(), getSloUrl());
} }
/** /**