- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看起来这应该很简单,但解决方案一直在躲避我。我的流程是 XML -> XSLT 翻译 -> 使用 Web 服务(具体来说是 IBM Web Sphere Web 服务)。我让这些部分单独工作,但我无法弄清楚如何将用户/传递添加到 SOAP header 。我认为我应该能够将它们添加到 Mule SOAP 组件的安全选项卡中的键中(我将操作设置为代理客户端)。不幸的是,我不知道有效的 key 是什么。也许我什至试图使用安全选项卡都离题太远了。所以最终我需要我的传出 XML 包含:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>
myUserName
</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
myPa33W0rd
</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
目前我的 Mule 流正在输出:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
我是否需要手动添加安全信息(可能在 XSLT 转换中)?这感觉不对,但我不知道如何添加它。
以下是我流程中的相关行:
<mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" xsl-file="src\main\resources\MappingMapToChangeCatalogEntry.xslt" outputEncoding="US-ASCII" doc:name="XSLT"/>
<cxf:proxy-client payload="body" enableMuleSoapHeaders="true" doc:name="SOAP"/>
<byte-array-to-string-transformer doc:name="Byte Array to String"/>
最佳答案
为了添加 WS-Sec,您需要配置 CXF WSS4J 拦截器并将它们注入(inject) Mule 的 CXF 消息处理器。
3.3 之前 =
<spring:bean name="wss4jOutConfiguration"
class="org.springframework.beans.factory.config.MapFactoryBean">
<spring:property name="sourceMap">
<spring:map>
<spring:entry key="action" value="Signature" />
<spring:entry key="user" value="joe" />
<spring:entry key="signaturePropFile" value="org/mule/module/cxf/wssec/wssecurity.properties" />
<spring:entry key="passwordCallbackClass" value="org.mule.module.cxf.wssec.ClientPasswordCallback" />
</spring:map>
</spring:property>
</spring:bean>
...
<cxf:proxy-client payload="body" enableMuleSoapHeaders="true" doc:name="SOAP">
<cxf:outInterceptors>
<spring:bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
<spring:property name="properties" ref="wss4jOutConfiguration"/>
</spring:bean>
</cxf:outInterceptors>
</cxf:proxy-client>
粗略样本密码回调类:
public class ClientPasswordCallback implements CallbackHandler{
@Override
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
WSPasswordCallback callback = (WSPasswordCallback) callbacks[0];
if(callback.getIdentifier().equals("joe")){
callback.setPassword("pass");
}
}
在这里查看更多信息:http://www.mulesoft.org/documentation/display/current/WS-Security+Usability+Improvement
3.3.+ :3.3+ 中有一个新的 cxf:ws-security 元素可用这里是一个示例流程:https://svn.codehaus.org/mule/tags/mule-3.4-M2/modules/cxf/src/test/resources/org/mule/module/cxf/wssec/cxf-secure-proxy-flow.xml
<cxf:proxy-client payload="body"
enableMuleSoapHeaders="true" doc:name="SOAP">
<cxf:ws-security>
<cxf:ws-config>
<cxf:property key="action"
value="UsernameToken
Timestamp" />
<cxf:property key="user" value="joe" />
<cxf:property key="passwordCallbackClass"
value="com.mulesoft.mule.example.security.PasswordCallback" />
<cxf:property key="mustUnderstand" value="false" />
</cxf:ws-config>
</cxf:ws-security>
</cxf:proxy-client>
以前,在使用 XSLT 时,我也只是自己处理了整个信封。然后我传递了用户并通过上下文参数传递到 XSLT
<xm:xslt-transformer xsl-file="xslt/ToSomethingSOAPY.xsl">
<xm:context-property key="user" value="${my.user}" />
<xm:context-property key="password" value="${my.pass}" />
</xm:xslt-transformer>
然后像这样通过 xsl 参数接收它们:
<xsl:param name="user" />
....
<wsse:UsernameToken
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="UsernameToken-1018444980">
<wsse:Username><xsl:value-of select="$user" /></wsse:Username>
关于soap - 添加用户并传递到 Mule 中的 SOAP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16308250/
我想将 smooks 集成到 mule ide 中。我们正在尝试从 webmethods 转移到 mule。我们在 smmoks 中有一个可用的 Edi 转换,我们想使用它。我找到了可以集成到 mul
当使用 Mule Maven 插件在 Mule 独立服务器上部署可部署存档时,我间歇性地收到此错误。 Error : Caused by: org.apache.maven.plugin.MojoEx
mule 线程中的默认线程数是多少。例如,如果我在 mule 中创建了一个 http 连接器并且没有指定接收器线程大小,那么它可以处理的最大并发请求数是多少? 最佳答案 默认值为 16。 这个值和其他
早上好,我正在尝试设置一个属性并访问它。但无法访问属性集。 我试图访问从客户端设置的 SplitterAggregator 中的属性。 以下是骡子配置。 以下是客户
我一直在试图弄清楚,入站终点和出站终点究竟是什么。对我来说,这有点难以理解。 骡子流中的入站和出站端点究竟是什么?如果流想要发送消息,则在接收时应使用哪个端点。或者当应用程序想要调用一个流时,它应该与
我有一个要求,我必须将 JSON 数据从一种格式转换为另一种格式。我必须获取 JSON 数组的相应值,并使它们成为键值对。 以下是所需的详细信息: 输入: "Headers": { "Head
我是 mule soft 的新手。我不知道 mule studio 和 mule esb 有什么区别。这两个软件只是看起来一样。 mule studio 是图形表示,我们也可以通过代码生成。我怎样才能
我正在尝试评估 Mule 提供的一组开箱即用的传输,并将其与来自例如ServiceMix 和 OpenESB。 在 Mule 的主页上,我找到了支持的传输列表: http://www.mulesoft
我创建了一个 mule 应用程序,当我使用 mule 3.5.6 CE 运行它时,它在 anypoint studio 中运行良好,但是当我尝试在 mule-standalone-3.6.1 中部署它
我们需要监控 HornetQ 消息(Jboss 的一部分)——监控是在消息到达队列、消息数量、消息消耗、审核消息有效负载方面。 HornetQ 是否公开 JMX Mbean 来监控这个过程? 作为集成
我有一个执行 XSLT 转换的 Mule 流,我已将我的 XSL 样式表放在 src/main/resources/ 中。当我打包我的应用程序并将其部署到 Mule Standalone 实例时,应用
我有用例,我需要加密 src/main/resources 下的属性文件中显示的值。 Mule 提供了一个名为 Mule Credentials Vault 的概念。在该文档中,我们可以在“Mule
我正在将 Mule 1.3 应用程序升级到 Mule 3.2.1(最新版本)。 Mule 1.3 配置文件有一个“model”元素和许多“mule-descriptor”子元素。
我对 Mule Studio 很陌生。 我正面临一个问题。我需要使用 Mule Studio 将数据从 CSV 文件插入到 PostgreSQL 数据库。 我正在使用 Mule Studio CE(版
一段时间以来,每当我通过图形编辑器保存流程时,mule studio 中总是出现 java.lang.assertionError 错误。如果我直接对 XML 进行更改,我不会收到任何错误。有人遇到过
是否有某种方法可以获取已部署的 mule 应用程序的基本 mule 应用程序名称? 到目前为止我发现的仅有的两个选项是: muleContext.getConfiguration().getId()
我正在尝试将我的输入字段与正则表达式相匹配。但它给出了 mule-expression 错误, regex: ^(?:[1-9][0-9]?(?:\.[0-9]{2})?|100(?:\.0{2})?
我是 Mule 的新手,我想了解独立 mule 与嵌入式 mule 之间的区别。我已经阅读了有关此的主题,但我无法回答一个问题。 Mule standalone 是如何工作的?它如何处理网络服务?它有
我想开始有条件的 mule quartz..例如:在 mule peroperties 文件中,我设置了一个 flag=on。如果该标志打开,那么调度程序将启动。如果该标志关闭,则不会调用 sched
我需要检查 JSON 对象中是否存在特定关键字,并在此基础上创建一个字符串。我的示例 dataweave 2.0 代码如下: %dw 2.0 output application/json var a
我是一名优秀的程序员,十分优秀!