
改进内容:
[OF-536] – 将JmDNS从1.0版本之前升级至3.6.3版本
[OF-1927] – 显示用于服务器间连接的TCP端口
[OF-2694] – 新增通道绑定支持
[OF-2970] – 在HTTP响应中添加缓存控制头
[OF-3037] – 新增管理控制台页面,用于查看失败的服务器间(S2S)连接尝试
[OF-3074] – 消除加密参数时使用硬编码初始向量的问题
[OF-3075] – 修复Blowfish加密使用弱SHA1哈希作为密钥的问题
[OF-3102] – 改进嵌入式数据库的错误处理
[OF-3105] – 改进多用户聊天室(MUC)头像支持
[OF-3111] – 实现Jetty服务器的正常停止
[OF-3115] – 改进对异常结束用户会话的检测
[OF-3122] – 默认停止使用基于通用名称的身份标识
[OF-3128] – 优化插件监视器,使其可立即重新加载父/子插件
[OF-3150] – 通过依赖内存中的多用户聊天室服务数据,消除多用户聊天室服务标识符不必要的数据库查询
[OF-3154] – 默认禁用自动踢出不活跃多用户聊天室成员的功能;将该行为设为可配置
[OF-3159] – 限制对证书主题备用名称(SAN)的遍历次数
[OF-3169] – 修复CachingPubsubPersistenceProvider中的并发、排序和刷新正确性问题
[OF-3176] – 将阻塞操作从Netty事件循环线程中转移出来,提升性能
[OF-3179] – 强制连接关闭监听器按确定顺序执行
[OF-3181] – 支持集群节点ID的静态配置
[OF-3182] – 出站服务器间连接复用事件循环组和事件执行器组
[OF-3184] – 在Docker镜像中添加健康检查
[OF-3185] – 改进入站服务器间连接未提供任何认证机制时的错误处理
[OF-3186] – 减少网络扫描器产生的冗余日志
[OF-3195] – 避免在Netty通道未激活时写入关闭流节
[OF-3196] – 修复DefaultPubSubPersistenceProvider.loadNodes()方法的O(n²)复杂度问题——该问题会导致大规模场景下启动时间长达数小时
[OF-3202] – 将PacketsProcessor.isDone()中的队列空检查替换为显式完成标记
[OF-3203] – 修复HappyEyeballsResolver类中done方法命名容易产生歧义的问题
[OF-3204] – 修复readSerializableMap错误将键类型强转为字符串,违反序列化规范的问题
[OF-3206] – 将OJDBC从23.7.0.25.01版本升级至23.26.2.0.0版本
[OF-3211] – 支持配置插件目录销毁超时时间
[OF-3214] – 新增检查:确保负载大小不超过节点配置的最大值(符合XEP-0060协议§7.1.3.5条款要求)
[OF-3220] – 修复服务器无法解析BOSH请求中客户端确认帧的问题
[OF-3233] – 为管理后台页面的同步集群统计请求添加超时与降级 fallback 机制
[OF-3240] – 重构数据库连接管理器中的数据库能力检测逻辑,消除过时的硬编码假设
[OF-3242] – 为dnsutil.dnsOverride添加通配符支持(示例:*.external.com)
[OF-3245] – 调整默认发布-订阅持久化提供者,对负载列使用数据库连接管理器的大文本工具类处理
[OF-3250] – 为DNS覆盖解析添加递归重查支持
[OF-3251] – 为DNS覆盖添加明确的IPv6支持
[OF-3252] – 将org.apache.commons:commons-dbcp2从2.9.0版本更新至2.14.0版本,同时将commons-pool2从2.9.0版本更新至2.13.1版本
[OF-3257] – 修复ScramSha1SaslServer中的计时攻击漏洞
[OF-3258] – 修复ScramSha1SaslServer中可被利用进行用户枚举的漏洞
[OF-3260] – 在原有X-Forwarded-*头基础上新增对RFC 7239标准Forwarded请求头的支持
[OF-3261] – 添加使用转发请求头时可信反向代理的配置项
[OF-3262] – 将仅基于IP的登录追踪替换为“用户名+IP”组合追踪
[OF-3264] – 改进IP工具类:在基于字符串的地址处理方法中支持IPv6区域/作用域ID后缀
[OF-3268] – 重构入站服务器间SASL EXTERNAL认证流程,移除SASL认证模块中重复的认证后检查
[OF-3273] – 修复SASL认证模块会接受当前连接/会话未声明支持的认证机制的问题
[OF-3275] – 将log4j从2.25.4版本更新至2.26.0版本
[OF-3283] – 优化集群环境下出站会话创建逻辑,复用其他节点已创建的路由
[OF-3286] – 替换用户组管理器中碎片化、不一致的锁策略
[OF-3288] – 统一分页与非分页场景下的组名称缓存清除逻辑
功能改进
[OF-3170] – 为新连接(客户端到服务器C2S、服务器到服务器S2S)实现可配置的速率限制
待办任务
[OF-2554] – 合并Docker相关文档
[OF-2957] – 升级依赖库至Netty 4.2
[OF-3163] – 移除标记为“将在Openfire 5.1.0移除”的过期代码
[OF-3207] – 更新单元测试使用的数据库版本(至版本38)
[OF-3235] – 修复安装文档中错误的链接标记(错写为hre,应为href)
[OF-3237] – 为Openfire添加Firebird数据库支持
[OF-3238] – 为Openfire添加CockroachDB数据库支持
[OF-3239] – 为Openfire添加MariaDB数据库支持
[OF-3253] – 将org.jsmpp:jsmpp依赖库从2.3.10版本更新至3.0.2版本
[OF-3254] – 更新Jaxen依赖库
[OF-3259] – 逐步淘汰“接受自签名证书”的legacy配置项
[OF-3271] – 优化闲置用户踢出、Ping配置项的管理界面标签(提升可读性)
[OF-3289] – 升级slf4j版本:从2.0.13 → 2.0.18
[OF-3290] – 更新junit版本:从6.0.3 → 6.1.0
[OF-3291] – 升级org.json:json版本:从20231013 → 20260522
[OF-3292] – 移除ResourceServlet(无用死代码)
[OF-3293] – 升级com.twelvemonkeys.imageio版本:从3.12.0 → 3.13.1
[OF-3294] – 升级org.apache.httpcomponents:httpclient版本:从4.5.13 → 4.5.14
[OF-3295] – 将所有Maven构建插件更新至最新正式版本
新增功能
[OF-2034] – 新增支持XEP-0398:用户头像到基于vCard的头像转换
[OF-2684] – 在Windows分发包中添加demoboot启动脚本
[OF-2879] – 新增支持XEP-0440:SASL通道绑定类型能力
[OF-3099] – 新增发布订阅(PubSub)事件监听功能
[OF-3101] – 在管理控制台展示用户个人资料/vCard数据
[OF-3129] – 为插件监控器新增阻塞式插件重载功能
[OF-3141] – 扩展JMX监控,覆盖所有监控统计数据,并通过Web API对外暴露
[OF-3188] – 为服务发现扩展(Service Discovery Extensions)添加通用支持
[OF-3210] – 添加对Java 25的支持
[OF-3244] – 新增管理页面,支持配置DNS覆盖规则
[OF-3277] – 新增工具方法,用于判断限制SQL结果集时应使用哪个关键字
子任务
[OF-3171] – 实现新连接速率限制的核心逻辑
[OF-3172] – 在管理控制台添加连接速率限制的配置界面
缺陷修复
[OF-1387] – 发布订阅(PubSub)管理控制台:删除订阅者时无确认对话框
[OF-2309] – 未加载插件时,启动阶段会抛出空指针异常(NPE)
[OF-3077] – CBC模式加密存在填充预言机潜在安全风险
[OF-3094] – 客户端到服务器(C2S)SASL EXTERNAL认证错误地请求了授权标识(authzid)
[OF-3119] – MacOS平台下HappyEyeballsResolver测试失败:testAllResultsWhenPreferredHostProvidedSecondButWithinResolutionDelay用例不通过
[OF-3121] – 父插件类加载器在插件卸载前就被销毁
[OF-3131] – 用户加入聊天室时,不总会发送聊天室主题
[OF-3142] – 速率类型统计的读取操作具有破坏性,会影响其他统计消费者
[OF-3152] – loadHistory(room)方法不生效历史策略的最大条数限制
[OF-3168] – 当菜单项排序属性和XML定义不一致时,管理控制台会打开错误的默认页面
[OF-3187] – 管理控制台插件重启时,AuthCheckFilter的排除规则会丢失
[OF-3189] – 修复服务发现扩展缺少DOAP条目问题
[OF-3192] – WebsocketFramePingTask.run抛出concurrent.TimeoutException(并发超时异常)
[OF-3193] – 向已关闭的出站服务器间(S2S)会话投递消息时,会出现静默丢包(无错误日志且消息直接丢失)
[OF-3194] – 用户登录时,EntityCapabilitiesManager向客户端发送重复的disco#info请求
[OF-3199] – loadNode()单节点重载方法:加载带有父节点的节点时会抛出空指针异常
[OF-3201] – addOutgoingDomainPair执行后发生异常时,不会调用outgoingServerSessionCreated,导致路由表中残留孤儿路由
[OF-3208] – Windows平台下插件卸载失败:JVM对解压后的插件文件持有文件锁
[OF-3209] – Windows平台下插件管理器无法卸载/重载插件:残留的孤儿插件目录会被重复加载
[OF-3212] – pubsub.CollectionNode.getSubscription(org.xmpp.packet.JID)方法中rootCollectionNode为null空指针
[OF-3215] – 对集合节点执行清理操作不应该抛出异常
[OF-3216] – disco#info请求中缺少节点属性,不符合XEP-0115规范
[OF-3217] – 对扩展数据表单处理不当,导致能力处理结果异常
[OF-3218] – 缺少校验逻辑,会接受格式错误的disco#info响应
[OF-3219] – BOSH连接活跃度检测会误拒合法请求
[OF-3221] – 服务器在BOSH响应中添加了冗余的ACK属性
[OF-3243] – DNSUtil.isNameCoveredByPattern()方法的DNS通配符模式匹配,缺少点边界校验
[OF-3256] – 部分插件不显示插件图标
[OF-3272] – CSI模块存在并发问题
[OF-3276] – 自动初始化流程不应该在未提供数据的情况下更新管理员账户信息
[OF-3287] – 群组可见性变更后,未及时清理非共享群组的用户成员缓存
[OF-3285] – 群组共享可见性变更不会立刻同步到用户联系人列表
[OF-3296] – 数据库迁移过程中,加密XML属性可能丢失加密保护
[OF-3297] – 手动迁移代码会用默认值覆盖已经完成迁移的SystemProperty配置值
Linuxeden开源社区