You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启redirectToOriginalResource后OIDC认证出现NullPointerException问题

问题分析与解决方案

根因

这个NullPointerException是Soteria 3.0.0(Wildfly 29内置的Jakarta Security实现)在处理redirectToOriginalResource=true时的适配bug:
当启用该参数时,Soteria会尝试保存原始请求的参数集合,用于登录完成后重定向回原资源时恢复请求状态,但在禁用JASPI的Wildfly 29 + Jakarta Faces环境下,RequestData对象的parameters字段未被正确初始化,导致后续HttpServletRequestDelegator.getParameter()调用时触发空指针。

触发场景

禁用JASPI后,Wildfly的安全认证流程跳过了JASPI相关的请求包装逻辑,而Soteria在处理原始请求参数捕获时,依赖的部分初始化逻辑仅在JASPI启用时才会执行。Jakarta Faces的请求处理(比如带参数的页面导航、POST提交)会进一步触发这个未初始化的参数调用分支,最终导致NPE。

临时解决方案

  • 暂时保留redirectToOriginalResource=false(默认值),手动实现登录后重定向到目标资源的逻辑:比如在登录前将目标URL存入会话,登录成功后从会话取出并跳转。
  • 尝试替换Wildfly内置的Soteria模块为最新修复版本(需注意Wildfly模块兼容性)。
  • 检查Jakarta Faces页面的请求参数处理,避免在受保护资源请求中传递特殊参数,减少触发未初始化分支的概率。

内容的提问来源于stack exchange,提问作者grigouille

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:55:08