对于我的论文我正在将Bonita BPM集成到Mule SOA中。
要在Bonita中启动新案例或流程实例,我必须调用Bonita REST。首先,我必须使用Bonita REST进行身份验证。这就是我的问题。
身份验证的工作方式类似于“您必须调用loginservice并将响应cookie放在以后的所有请求中”。
如何在骡子流中完成?有些文章告诉我,copy-properties propertyName =“JSESSIONID”应该这样做。但这不起作用。
有人有想法吗?
进一步说明我的流程和相关的打印信息:
PRINT1:CopyPropertiesTransformer:属性值为null,不会复制任何属性
PRINT 2:LoggerMessageProcessor:{Set-Cookie = JSESSIONID = F60114E3ECB450A62171E3D63EAC3E4D;路径= /博尼塔/;仅Http}
PRINT 3:响应代码401映射为失败。消息有效内容的类型为:BufferInputStream
<http:request-config name="bos" host="localhost"
port="8080" basePath="/bonita" doc:name="bos-connection" />
<flow name="sendOrderFlow">
<http:listener config-ref="HTTP_Listener_Configuration"
path="/" doc:name="HTTP" />
<http:request config-ref="bos" path="loginservice"
method="GET" followRedirects="false" doc:name="bos-login">
<http:request-builder>
<http:query-param paramName="username" value="walter.bates" />
<http:query-param paramName="password" value="bpm" />
</http:request-builder>
</http:request>
<copy-properties propertyName="JSESSIONID" /> <!-- PRINT 1 HERE -->
<logger message="#[headers:INBOUND:Set-Cookie]" level="INFO" /> <!-- PRINT 2 HERE -->
<http:request config-ref="bos"
path="API/bpm/process" method="GET" followRedirects="false" doc:name="bos-listAvailableProcesses">
<http:request-builder>
<http:query-param paramName="p" value="0" />
</http:request-builder>
</http:request>
答案 0 :(得分:0)
除了JSESSIONID,您还需要在HTTP标头中包含X-Bonita-API-Token。该标头的值以cookie的形式提供,并附带身份验证的答案(即对loginservice的调用)。