问题描述
sa-token 组件里有一个url白名单的机制
白名单通过mysql数据库查询并且以逗号形式分割的字符串
mysql语句如下:
SELECT GROUP_CONCAT(t.url) FROM
(SELECT DISTINCT GROUP_CONCAT(SYSURL) url FROM sys_xtxx
UNION
SELECT DISTINCT GROUP_CONCAT(MOBILEURL) url FROM sys_xtxx
) t
WHERE
1 = 1
group
但是 GROUP_CONCAT 查询字符串是有长度的,默认为1024
当白名单url数量增加以后,其中的一条触及长度上限的URL会被截断,后边的url都不在白名单范围之内,这时候白名单机制就不好使了
解决方案
经测试,必须要在Mysql配置文件 my.ini 中修改
新增一条配置
# 设定group_concat的最大长度
group_concat_max_len = 4294967295;
还需要 重启Mysql服务