我正在开发一个操作,我必须对SQL报告服务执行SOAP请求,我已经获得了WSDL来调用soap req并且我构建了所需的Outputroot,但是当我使用以下内容调用服务时授权参数:
SET OutputRoot.Properties.IdentitySourceType = 'usernameAndPassword';
SET OutputRoot.Properties.IdentitySourceToken = 'User';
SET OutputRoot.Properties.IdentitySourcePassword = 'Password';
SET OutputRoot.Properties.IdentitySourceIssuedBy = 'Domain';
我从跟踪
中收到以下消息2017-07-01 20:45:18.789668 19826 UserTrace BIP3719I:节点'SubflowSUB.SOAP请求操作'通过传输'HTTP'('gg20154')发送SOAP请求,用于'request-response'类型的操作'Operation' 。有关此请求的成功或失败消息以及任何特定于传输的消息,请参阅后续消息。无需执行任何操作。
2017-07-01 20:45:18.792716 19826 UserTrace BIP3633I:节点'SubflowSUB.SOAP请求操作'将HTTP数据发送到主机'gg20154'(端口80)的URL'/ReportServer/ReportExec2005.asmx'。代理使用URL'/ReportServer/ReportExec2005.asmx'通过HTTP将数据发送到主机'gg20154'(端口80)的远程服务器。有关此请求的成功或失败消息,请参阅后续消息。无需任何操作。
2017-07-01 20:45:18.794458 19826 UserTrace BIP3634I:节点'SubflowSUB.SOAP请求操作'从主机'gg20154'接收到HTTP数据,状态代码为401.代理通过HTTP从远程服务器接收数据在主机'gg20154'上,HTTP状态代码为401.以2开头的状态代码表示成功;其他人暗示客户端或服务器中的错误。无需任何操作。
我正在使用正确的凭据,因为我已经看到在直接调用服务时如何加载soapui但是当它被IIB调用时它会抛出401是否有人遇到过这种问题?以及如何解决?。
先谢谢你们。
答案 0 :(得分:0)
对于具有基本身份验证的凭据,您应创建具有基本默认值的安全配置文件,并使用 mqsisetdbparms 命令将用户和密码分配给此配置文件。在BAR生成的SOAP请求流中,您必须分配创建的安全配置文件:
mqsisetdbparms $BRKCORP -n NAME_CRED -u <user> -p <password>
mqsicreateconfigurableservice $BRKCORP -c SecurityProfiles -o SEG_NAME_CRED -n "propagation,idToPropagateToTransport,transportPropagationConfig" -v "TRUE,STATIC ID,NAME_CRED"
答案 1 :(得分:0)
这应该适用于 SOAP 和 Rest 服务:
DECLARE _AUTH CHAR 'Basic ' || BASIC64ENCODE(CAST('<username>' || ':' || '<password>' AS BLOB CCSID InputRoot.Properties.CodedCharSetId));
SET OutputRoot.HTTPRequestHeader."Authentication" = _AUTH;