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

如何在Camel中关闭XSLT安全处理以允许调用扩展函数?

解决Camel XSLT组件Secure Processing导致扩展函数禁用的问题

错误核心原因是Camel XSLT组件默认开启了Secure Processing安全特性,该特性会阻止XSLT中调用外部扩展函数。针对你的场景,有以下几种直接的解决方式:

1. 直接在XSLT端点URI中添加参数

在你现有的producerTemplate调用里,给XSLT端点加上secureProcessing=false参数即可:

String result = producerTemplate.to("xslt:" + xslt + "?secureProcessing=false")
    .withBody(inputVariable)
    .withHeaders(variables)
    .request(String.class);

这种方式适合单个端点的配置,快速生效。

2. 全局配置XsltComponent

如果你的应用中有多个XSLT端点需要关闭该特性,可以全局配置XsltComponent:

// 获取CamelContext中的XsltComponent实例
XsltComponent xsltComponent = camelContext.getComponent("xslt", XsltComponent.class);
// 关闭Secure Processing
xsltComponent.setSecureProcessing(false);

注意要在Camel路由启动前完成这个配置,确保全局生效。

3. Spring Boot环境下通过配置文件设置

如果是Spring Boot集成Camel,直接在application.properties或application.yml中添加配置:

application.properties

camel.component.xslt.secure-processing=false

application.yml

camel:
  component:
    xslt:
      secure-processing: false

⚠️ 注意:关闭Secure Processing会降低XML处理的安全性,仅当你完全信任所使用的XSLT文件以及其调用的扩展函数时,才建议这么操作,避免恶意代码执行风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:35:17