diff --git a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoManager.java b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoManager.java index 53f7234d..afd696f1 100644 --- a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoManager.java +++ b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoManager.java @@ -41,6 +41,14 @@ public class SaSsoManager { } public static void setConfig(SaSsoConfig config) { SaSsoManager.config = config; + // 如果配置了 is-check-sign=false,则打印一条警告日志 + if ( ! config.getIsCheckSign()) { + System.err.println("-----------------------------------------------------------------------------"); + System.err.println("警告信息:"); + System.err.println("当前配置项 sa-token.sso.is-check-sign=false 代表跳过 SSO 参数签名校验"); + System.err.println("此模式仅为方便本地调试使用,生产环境下请务必配置为 true (配置项默认为true)"); + System.err.println("-----------------------------------------------------------------------------"); + } } } diff --git a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoProcessor.java b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoProcessor.java index fc843d4f..cd276637 100644 --- a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoProcessor.java +++ b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoProcessor.java @@ -143,6 +143,8 @@ public class SaSsoProcessor { if(ssoTemplate.getSsoConfig().getIsCheckSign()) { ssoTemplate.getSignTemplate().checkRequest(req, paramName.client, paramName.ticket, paramName.ssoLogoutCall); + } else { + ssoTemplate.printNoCheckSignWarning(); } // 3、校验ticket,获取 loginId @@ -215,6 +217,8 @@ public class SaSsoProcessor { // step.1 校验签名 if(ssoTemplate.getSsoConfig().getIsCheckSign()) { ssoTemplate.getSignTemplate().checkRequest(req, paramName.loginId); + } else { + ssoTemplate.printNoCheckSignWarning(); } // step.2 单点注销 @@ -398,6 +402,8 @@ public class SaSsoProcessor { // 校验参数签名 if(ssoTemplate.getSsoConfig().getIsCheckSign()) { ssoTemplate.getSignTemplate().checkRequest(req, paramName.loginId); + } else { + ssoTemplate.printNoCheckSignWarning(); } // 注销当前应用端会话 diff --git a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java index 8d66618f..4ee27e98 100644 --- a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java +++ b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java @@ -612,6 +612,13 @@ public class SaSsoTemplate { } + // 在 sa-token.sso.is-check-sign=false 时,输出警告信息 + public void printNoCheckSignWarning() { + System.err.println("警告信息:当前配置项 sa-token.sso.is-check-sign=false 已跳过参数签名校验," + + "此模式仅为方便本地调试使用,生产环境下请务必配置为 true (配置项默认为true)"); + } + + // -------- 以下方法已废弃,仅为兼容旧版本而保留 -------- /**