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

自定义Portlet连接ESB服务器遇CSP报错求助

问题分析与解决方案

核心原因

这个报错是浏览器端的Content Security Policy(CSP)限制导致的——CSP是浏览器层面的安全策略,拦截请求后不会把错误抛到服务器日志里,所以你看不到服务器相关报错。高阶环境能正常运行,大概率是该环境的CSP规则已经包含了ESB服务器的地址,或者策略本身更宽松。

排查与解决步骤

1. 调整Portal的CSP配置

  • 找到Portal里配置CSP的位置(不同产品路径不同:比如Liferay在portal-ext.properties,WebSphere Portal在管理控制台的安全设置里)
  • 检查connect-src规则,当前只允许'self'和https:请求,而你的ESB是http://localhost:5555,既不属于'self'又是http协议,所以被拦截
  • 修改connect-src规则,把ESB的完整地址加进去:connect-src 'self' https: http://localhost:5555/;正式环境建议把localhost换成ESB的实际域名/IP,优先用https协议
  • 重启Portal服务,让新配置生效

2. 排除网络层面问题

  • 先验证Portal服务器能不能访问ESB:在Portal服务器上执行curl http://localhost:5555/(Linux)或者Invoke-WebRequest http://localhost:5555/(Windows),确认能正常拿到响应
  • 如果服务器能访问但浏览器仍报错,那肯定是CSP的问题;如果服务器也访问不了,再排查防火墙端口开放、ESB服务是否启动等网络问题

3. 对比高阶环境配置

  • 登录高阶环境的Portal,查看它的CSP规则,和本地环境做对比
  • 检查高阶环境中ESB的访问协议(是不是https)、地址有没有在CSP允许列表里,这能直接确认CSP规则是否是核心原因

临时测试方案

如果只是临时调试,可以在浏览器开发者工具里临时禁用CSP(Chrome:设置→隐私和安全→网站设置→内容安全策略→关闭),验证连接ESB是否正常。但这只能用于测试,正式环境必须通过配置CSP规则解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:52:11