Skip to content

[BUG] Tomcat Listener 注入会使之前所有 Listener 失效 #93

@ReaJason

Description

@ReaJason

运行操作系统: Linux

生成参数

  • 服务类型: Tomcat
  • 挂载类型: Listener
  • 功能类型: Any

报错截图 OR 错误代码

在注入 Tomcat Listener 命令回显马再注入哥斯拉马,发现之前注入的命令回显马无法利用,再注入命令回显马,发现之前注入的哥斯拉马无法连接。

额外信息

Add any other context about the problem here.

此处在将 objects 转为 list 时,并没有强转为 Object[] 导致,直接将整个 listener arrays 当成的一个元素,这会使得每注入一个就加一层数组嵌套,并且只有最后一次注册的 listener 会生效,之前的都会失效,包括业务 listener 以及之前注入的 listener

Image

影响范围

v1.9.0 无影响,v1.10.0 以及以上版本有影响,将在 v2.1.0 进行修复,受影响的版本建议暂时先不要使用 Tomcat Listener 而是使用 Tomcat Valve。

修复方法

- ArrayList arrayList = new ArrayList(Arrays.asList(objects));
+ ArrayList arrayList = new ArrayList(Arrays.asList(((Object[]) objects)));

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions