Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.12.11 #243

Merged
merged 34 commits into from
Apr 14, 2024
Merged

1.12.11 #243

merged 34 commits into from
Apr 14, 2024

Conversation

erupts
Copy link
Owner

@erupts erupts commented Apr 14, 2024

🐞 修复 mongodb 场景在字段上添加注解不生效的 bug (感谢iszhangsc 的贡献#231)
🐞 Erupt-BI 解决存在必填项时自定义模板404的 bug
🧩 Erupt-BI 兼容 JDK17
🧩 筛选场景下支持清除 choice 组件已输入值
🌟 无障碍能力支持灰色模式
🌟 Erupt-BI 查询维度支持参照表格组件,表格内部支持虚拟滚动,列筛选,列排序等能力
🌟 自定义按钮增加调用时提示文本配置能力(callHint�),为空则表示不提示
🌟 增加 Linq.J 依赖,基于内存的对象查询语言,用于内存级对象查询与 Lambda 映射
🌟 userinfo 接口增加返回组织编码、岗位编码、角色编码
🌟 将 erupt-magic-api 资源重载配置能力配置到菜单权限中
手动删除erupt-magic-api.loaded文件按钮重载权限会自动添加到菜单中
🌟 ViewType增加SAFE_TEXT类型,文本中带有脚本或标签信息不会被前端渲染
🌟 提高渲染性能,所有树组件都增加虚拟滚动能力,如果节点条数大于 50 则会开启
🌟 自定义按钮支持代码弹出能力,配置语言与内容即可
🌟 EruptDao支持 LambdaQuery 语法查询能力

List<EruptUser> eruptUsers = eruptDao.lambdaQuery(EruptUser.class)
                .like(EruptUser::getName, "erupt")
                .isNull(EruptUser::getWhiteIp).list();

🌟 破坏性更新:因在跨国工作等场景很容易出现本地时间和服务器事件不一致的情况导致无法登录,所以调整登录时密码加密规则 https://www.yuque.com/erupts/erupt/vr4md2#jgeb,自定义登录规则的用户需要对此进行调整

陈浩然 and others added 30 commits November 1, 2023 18:00
flow自动添加菜单 地址不正确 访问404
…User::getName, "e").isNul(EruptUser::getWhiteIp).addCondition("whiteIp is null").list()
@erupts erupts merged commit 867c065 into master Apr 14, 2024
2 checks passed
@@ -23,69 +23,61 @@
if (StringUtils.isNotBlank(value)) {
// 避免script 标签
Pattern scriptPattern = Pattern.compile("<script>(.*?)</script>", Pattern.CASE_INSENSITIVE);
if (scriptPattern.matcher(value).matches()) {
if (scriptPattern.matcher(value).find()) {

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script>' and with many repetitions of '<script>a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script>' and with many repetitions of '<script>a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script>' and with many repetitions of '<script>a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script>' and with many repetitions of '<script>a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script>' and with many repetitions of '<script>a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script>' and with many repetitions of '<script>a'.
return true;
}
// 删除单个的<script ...> 标签
scriptPattern = Pattern.compile("<script(.*?)>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
if (scriptPattern.matcher(value).matches()) {
if (scriptPattern.matcher(value).find()) {

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script' and with many repetitions of '<scripta'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script' and with many repetitions of '<scripta'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script' and with many repetitions of '<scripta'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script' and with many repetitions of '<scripta'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script' and with many repetitions of '<scripta'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with '<script' and with many repetitions of '<scripta'.
return true;
}
// 避免 eval(...) 形式表达式
scriptPattern = Pattern.compile("eval\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
if (scriptPattern.matcher(value).matches()) {
if (scriptPattern.matcher(value).find()) {

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'eval(' and with many repetitions of 'eval(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'eval(' and with many repetitions of 'eval(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'eval(' and with many repetitions of 'eval(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'eval(' and with many repetitions of 'eval(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'eval(' and with many repetitions of 'eval(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'eval(' and with many repetitions of 'eval(a'.
if (scriptPattern.matcher(value).matches()) {
// 避免 expression(...) 表达式
scriptPattern = Pattern.compile("expression\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
if (scriptPattern.matcher(value).find()) {

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'expression(' and with many repetitions of 'expression(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'expression(' and with many repetitions of 'expression(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'expression(' and with many repetitions of 'expression(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'expression(' and with many repetitions of 'expression(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'expression(' and with many repetitions of 'expression(a'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'expression(' and with many repetitions of 'expression(a'.
return true;
}
// 避免 onload= 表达式
scriptPattern = Pattern.compile("onload(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
if (scriptPattern.matcher(value).matches()) {
if (scriptPattern.matcher(value).find()) {

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onload' and with many repetitions of 'onloada'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onload' and with many repetitions of 'onloada'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onload' and with many repetitions of 'onloada'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onload' and with many repetitions of 'onloada'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onload' and with many repetitions of 'onloada'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onload' and with many repetitions of 'onloada'.
return true;
}
// 避免 onmouseover= 表达式
scriptPattern = Pattern.compile("onmouseover(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
if (scriptPattern.matcher(value).matches()) {
if (scriptPattern.matcher(value).find()) {

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onmouseover' and with many repetitions of 'onmouseovera'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onmouseover' and with many repetitions of 'onmouseovera'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onmouseover' and with many repetitions of 'onmouseovera'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onmouseover' and with many repetitions of 'onmouseovera'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onmouseover' and with many repetitions of 'onmouseovera'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onmouseover' and with many repetitions of 'onmouseovera'.
return true;
}
// 避免 onfocus= 表达式
scriptPattern = Pattern.compile("onfocus(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
if (scriptPattern.matcher(value).matches()) {
if (scriptPattern.matcher(value).find()) {

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onfocus' and with many repetitions of 'onfocusa'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onfocus' and with many repetitions of 'onfocusa'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onfocus' and with many repetitions of 'onfocusa'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onfocus' and with many repetitions of 'onfocusa'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onfocus' and with many repetitions of 'onfocusa'.
This
regular expression
that depends on a
user-provided value
may run slow on strings starting with 'onfocus' and with many repetitions of 'onfocusa'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant