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

如何解决Alfresco ADF与Activiti 6.0社区版的登录跨域问题?

解决ADF演示壳应用连接Activiti 6.0社区版的CORS登录问题

这个错误核心是跨域资源共享(CORS)限制——ADF运行在localhost:3000,而Activiti部署在localhost:9999,浏览器的同源策略会阻止跨端口的认证请求,除非Activiti所在的Tomcat服务器配置了允许跨域的响应头。结合Activiti 6.0社区版的特性,你可以按以下步骤修复:

1. 配置Tomcat的CORS过滤器

因为Activiti部署在Tomcat 8上,直接在Tomcat全局配置CORS是最有效的方式:

  • 打开Tomcat安装目录下的conf/web.xml文件
  • 在文件末尾的</web-app>标签之前,添加以下CORS过滤器配置:
<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>http://localhost:3000</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.methods</param-name>
    <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.headers</param-name>
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization</param-value>
  </init-param>
  <init-param>
    <param-name>cors.exposed.headers</param-name>
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
  </init-param>
  <init-param>
    <param-name>cors.support.credentials</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
  • 保存文件后,重启Tomcat服务器。这个配置会允许来自localhost:3000的跨域请求,并且支持携带认证凭证(这对登录请求至关重要)。

2. 验证Activiti应用的CORS配置

Activiti 6.0社区版的activiti-app本身也有CORS相关配置,需要确保和Tomcat的配置一致:

  • 找到Tomcat中webapps/activiti-app/WEB-INF/classes/activiti-app.properties文件
  • 添加或修改以下配置项:
cors.enabled=true
cors.allowed.origins=http://localhost:3000
cors.allowed.methods=GET,POST,HEAD,OPTIONS,PUT,DELETE
cors.allowed.headers=Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization
cors.exposed.headers=Access-Control-Allow-Origin,Access-Control-Allow-Credentials
cors.support.credentials=true
  • 保存后重启Tomcat,确保Activiti应用加载新的配置。

3. 检查ADF演示壳应用的配置

确保ADF的配置指向正确的Activiti端点,并且启用了正确的认证方式:

  • 打开ADF demo-shell的src/app.config.json文件
  • 确认bpmHost配置为你的Activiti地址:
{
  "ecmHost": "http://localhost:8080/alfresco",
  "bpmHost": "http://localhost:9999/activiti-app",
  "authType": "BASIC",
  "oauth2": {
    // 其他oauth配置可保留,但Activiti社区版更适配BASIC认证
  }
}
  • 保存配置后,重启ADF应用(停止npm start后重新运行)。

4. 验证修复效果

重启所有服务后,打开浏览器的开发者工具(F12),切换到Network标签,然后尝试在localhost:3000登录:

  • 查看登录请求的响应头,确认包含Access-Control-Allow-Origin: http://localhost:3000和Access-Control-Allow-Credentials: true
  • 如果请求成功,就能正常进入ADF的APS相关页面了。

如果还是有问题,可以检查开发者工具的Console标签,看具体的CORS错误提示,比如是否是Origin不匹配,或者凭证未被允许,再针对性调整配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:44:13