IRS ACA 1095C SOAP故障:断言处理错误



我在向IRS ACA网站提交1094/1095C时随机出现错误。从一段时间以来,它一直是一个工作代码。我没有对代码进行任何更改。突然间,我开始在提交的几份文件中看到这个错误。

代码是用java编写的。我们仍然能够成功地完成完整提交,但某些子提交会返回SOAP错误。


........
org.apache.cxf.endpoint.Client yclient = (org.apache.cxf.endpoint.Client) factory.create();
GZIPInInterceptor ininterceptor = new GZIPInInterceptor();
yclient.getInInterceptors().add(ininterceptor);
Endpoint eEndpoint = yclient.getEndpoint();
EndpointInfo einfo = eEndpoint.getEndpointInfo();
BindingInfo b = einfo.getBinding();
ProviderFactory pf = ServerProviderFactory.getInstance();
eEndpoint.put(ProviderFactory.class.getName(), pf);
yclient.getRequestContext().put("soap.env.ns.map", nsMap);
yclient.getRequestContext().put("org.apache.cxf.client", Boolean.FALSE);
Collection<BindingOperationInfo> c = b.getOperations();
Iterator<BindingOperationInfo> it = c.iterator();
while (it.hasNext()) {
BindingOperationInfo bi = it.next();
QName name = bi.getOperationInfo().getName();
System.out.println(name.toString());
GZIPOutInterceptor interceptor = new GZIPOutInterceptor();
interceptor.setForce(true);
yclient.getOutInterceptors().add(interceptor);
Map<String, Object> ycontext = yclient.getRequestContext();
ycontext.put(MessageContext.HTTP_REQUEST_HEADERS, head);
Map<Integer, Class<?>> wssConfigActions = new HashMap<Integer, Class<?>>();
Map<String, Object> serverOutParams = createServerOutParams(wssConfigActions, true);
yclient.getOutInterceptors().add(new SOAPSecurityInterceptor());
yclient.getOutInterceptors().add(new SecurityHeaderHandler(null));
AIRXMLSignInterceptor sigInterceptor = new AIRXMLSignInterceptor(serverOutParams, true);
sigInterceptor.privateKey = PrivateKey;
yclient.getOutInterceptors().add(sigInterceptor);
AddressingProperties maps = new AddressingProperties();
AttributedURIType iri = new AttributedURIType();
iri.setValue("RequestSubmissionStatusDetail");
maps.setAction(iri);
ACABulkRequestTransmitterStatusDetailRequestType statusRequest = new ACABulkRequestTransmitterStatusDetailRequestType();
statusRequest.setId("id-00E7E0006E615C14D6000736030986000");
statusRequest.setVersion("1.0");
ACABulkReqTrnsmtStsReqGrpDtlType reqDetail = new ACABulkReqTrnsmtStsReqGrpDtlType();
reqDetail.setReceiptId(submissionRecord.StatusInfo.ReceiptId);
statusRequest.setACABulkReqTrnsmtStsReqGrpDtl(reqDetail);
ACABulkBusinessHeaderRequestType businessHeader = new ACABulkBusinessHeaderRequestType();
businessHeader.setId("id-00E7E0006E615C14D6000736030986000");
businessHeader.setUniqueTransmissionId(submissionRecord.StatusInfo.UniqueTransmissionId);
GregorianCalendar gregory = new GregorianCalendar();
TimeZone utc = TimeZone.getTimeZone("UTC");
gregory.setTime(UTCDate.now());
gregory.setTimeZone(utc);
XMLGregorianCalendar calendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(gregory);
BusinessHeaderTimeStamp bhts = new BusinessHeaderTimeStamp(calendar);
businessHeader.setTimestamp(bhts);
System.out.println(bhts.toXMLFormat());
javax.xml.ws.Holder<ACABulkBusinessHeaderRequestType> businessHeaderWrapper = new javax.xml.ws.Holder<ACABulkBusinessHeaderRequestType>();
businessHeaderWrapper.value = businessHeader;
SecurityHeaderType securityHeader = configureSecurityHeader(now);
System.out.println("Polling receiptId: " + submissionRecord.StatusInfo.ReceiptId);
TransmitterACASecurityHeaderType acaSecurityHeader = new TransmitterACASecurityHeaderType();
acaSecurityHeader.setUserId(ASID);
Object[] res1 = yclient.invoke(bi, statusRequest, acaSecurityHeader, securityHeader,
businessHeaderWrapper);
ACABulkRequestTransmitterStatusDetailResponseType response = (ACABulkRequestTransmitterStatusDetailResponseType) res1[0];
submissionRecord.StatusInfo.Response = response;
String xml = submissionRecord.StatusInfo.toXML();
return xml;
......

最终请求:

<soapenv:Envelope xmlns:irs="urn:us:gov:treasury:irs:common" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:us:gov:treasury:irs:ext:aca:air:ty18" xmlns:urn2="urn:us:gov:treasury:irs:msg:acabusinessheader" xmlns:urn3="urn:us:gov:treasury:irs:srv:irsacabulkrequesttransmitter"
xmlns:urn4="urn:us:gov:treasury:irs:msg:acasecurityheader" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsse:Security xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SIG-0000E45A7D26C7FA400002296060180000">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference URI="#TS-0000E45A7D26C7FA471572296060100000">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wsse wsa irs soapenv urn urn2 urn3 urn4 wsse"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>2+tTV2cozq0boqXSgb+K6FY2EqjM5fCvBMiwbBR97sE=</ds:DigestValue>
</ds:Reference>
<ds:Reference URI="#id-081a1c66-00d0-45cd-9d00-bf8c4eddf19e">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wsa irs soapenv urn2 urn3 urn4 wsse"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>ENBnod7vKlXCLiWqft1H4duETdaR4MxotsJ8JVUhZDc=</ds:DigestValue>
</ds:Reference>
<ds:Reference URI="#id-E68EBBF1696C5DD4AA143353323390578">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wsa irs soapenv urn urn3 urn4 wsse"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>0gJBTeYumHhBgwSM08x0lAQeiFb9xGlsacSe7E5GzeQ=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>eXaUaEVZMzg1Bxsy+EVoIG4d4to3lrUW+7==</ds:SignatureValue>
<ds:KeyInfo Id="KI-1057E45A7D26C7FA471572296060184463">
<wsse:SecurityTokenReference wsu:Id="STR-1057E45A7D26C7FA471572296060184464">
<wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">MIIGNTCCBR2gAwIBAgIQQAF...VIrQSgw</wsse:KeyIdentifier>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
<wsu:Timestamp wsu:Id="TS-1057E45A7D26C7FA471572296060184461">
<wsu:Created>2019-10-28T20:54:20.184Z</wsu:Created>
<wsu:Expires>2019-10-28T21:04:20.184Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
<Action xmlns="http://www.w3.org/2005/08/addressing">BulkRequestTransmitter</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:d0711332-e90f-4587-848b-3ee0da27c2e9</MessageID>
<To xmlns="http://www.w3.org/2005/08/addressing">https://la.www4.irs.gov/airp/aca/a2a/1095BC_Transmission</To>
<ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</ReplyTo>
<urn4:ACASecurityHeader xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns8="urn:us:gov:treasury:irs:msg:irsacabulkrequesttransmitter">
<irs:UserId>0aB0000</irs:UserId>
</urn4:ACASecurityHeader>
<urn2:ACABusinessHeader xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns8="urn:us:gov:treasury:irs:msg:irsacabulkrequesttransmitter" ns7:Id="id-E00EBBF0000C5DD4AA143353323390000">
<urn:UniqueTransmissionId>65fc42c9-8ecd-46f2-0000-00000d58b9be:SYS12:BB01F::T</urn:UniqueTransmissionId>
<irs:Timestamp>2019-10-28T20:54:20Z</irs:Timestamp>
</urn2:ACABusinessHeader>
<urn:ACATransmitterManifestReqDtl xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns8="urn:us:gov:treasury:irs:msg:irsacabulkrequesttransmitter" ns7:Id="id-00000c66-00d0-45cd-9d00-bf8c4eddf19e">
<urn:PaymentYr>2016</urn:PaymentYr>
<urn:PriorYearDataInd>1</urn:PriorYearDataInd>
<irs:EIN>000000000</irs:EIN>
<urn:TransmissionTypeCd>O</urn:TransmissionTypeCd>
<urn:TestFileCd>P</urn:TestFileCd>
<urn:TransmitterNameGrp>
<urn:BusinessNameLine1Txt>First Capitol Consulting</urn:BusinessNameLine1Txt>
</urn:TransmitterNameGrp>
<urn:CompanyInformationGrp>
<urn:CompanyNm>F  Co</urn:CompanyNm>
<urn:MailingAddressGrp>
<urn:USAddressGrp>
<urn:AddressLine1Txt>Abc Blvd</urn:AddressLine1Txt>
<urn:AddressLine2Txt>Suite 000</urn:AddressLine2Txt>
<irs:CityNm>L city</irs:CityNm>
<urn:USStateCd>aA</urn:USStateCd>
<irs:USZIPCd>00000</irs:USZIPCd>
</urn:USAddressGrp>
</urn:MailingAddressGrp>
<urn:ContactNameGrp>
<urn:PersonFirstNm>a</urn:PersonFirstNm>
<urn:PersonLastNm>b</urn:PersonLastNm>
</urn:ContactNameGrp>
<urn:ContactPhoneNum>0000000000</urn:ContactPhoneNum>
</urn:CompanyInformationGrp>
<urn:VendorInformationGrp>
<urn:VendorCd>I</urn:VendorCd>
<urn:ContactNameGrp>
<urn:PersonFirstNm>f</urn:PersonFirstNm>
<urn:PersonLastNm>a</urn:PersonLastNm>
</urn:ContactNameGrp>
<urn:ContactPhoneNum>0000000000</urn:ContactPhoneNum>
</urn:VendorInformationGrp>
<urn:TotalPayeeRecordCnt>180</urn:TotalPayeeRecordCnt>
<urn:TotalPayerRecordCnt>1</urn:TotalPayerRecordCnt>
<urn:SoftwareId>00A0000000</urn:SoftwareId>
<urn:FormTypeCd>1094/1095C</urn:FormTypeCd>
<irs:BinaryFormatCd>application/xml</irs:BinaryFormatCd>
<irs:ChecksumAugmentationNum>dc4206d79d71cc9c8d5e9183677580e0b68b2a708543409aaec7a407c66d6a0e</irs:ChecksumAugmentationNum>
<irs:AttachmentByteSizeNum>336472</irs:AttachmentByteSizeNum>
<urn:DocumentSystemFileNm>1094C_Request_BB01F_20191028T205416001Z.xml</urn:DocumentSystemFileNm>
</urn:ACATransmitterManifestReqDtl>
</soapenv:Header>
<soapenv:Body>
<ns8:ACABulkRequestTransmitter xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns7="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns8="urn:us:gov:treasury:irs:msg:irsacabulkrequesttransmitter" version="1.0">
<irs:BulkExchangeFile>
<xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:734ca002-8275-4680-a24c-923694dc777e-93@urn%3Aus%3Agov%3Atreasury%3Airs%3Acommon"/>
</irs:BulkExchangeFile>
</ns8:ACABulkRequestTransmitter>
</soapenv:Body>
</soapenv:Envelope>
--uuid:c82296c0-0eaf-4133-971d-7838bafae222

我收到以下错误(500(

ID:98响应代码:500
编码:UTF-8
内容类型:text/xml;charset=utf-8
标头:{connection=[close],Content-Length=[613],Content-type=[text/xml;charset=utf-8],Date=[星期一,2019年10月28日20:54:36 GMT],Set-Cookie=[dc=dcd;Path=/;Version=1;Secure;Httponly;Max-Age=900],Strict-Transport-Security=[Max-Age=3153000],X-Csection=[close]}

有效载荷:

<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Error in assertion processing</faultstring>
<faultactor>ssg</faultactor>
<detail>
<l7:policyResult xmlns:l7="http://www.layer7tech.com/ws/policy/fault" status="Multipart stream ended before a terminating boundary was encountered"/>
</detail>
</soapenv:Fault>

有人能解释一下我遗漏了什么或做错了什么吗。

通过修改配置,我们能够在Apache CXF v3.1.4中实现这一点;我们添加了AllowChunking="false"和secureSocketProtocol="TLSv1.2"。在此更改之前,自2019年10月初以来,对于任何大于60KB的传输,我们还收到了"断言处理错误"的响应。以下是我们对Apache CXF XML配置所做的更改:

<http-conf:conduit name="*.http-conduit">
AllowChunking="false"
/>
<http-conf:tlsClientParameters
secureSocketProtocol="TLSv1.2"
/>
</http-conf:conduit>

我已经为此工作了一段时间,并消除了邮箱建议的前两件事(TLS 1.2、FIPS和网络问题(。我怀疑他们将中间层更改/更新为broadcom(以前是Layer7和CA(。我将通过关闭http分块编码进行测试,因为我默认情况下会打开它。如果你不确定如何关闭它,你可以使用http 1.0,因为它只在http 1.1中受支持。我进行了更新,关闭了http协议上的分块编码(WebSphere中的策略(,我可以从发送35到3000甚至更高。

我也遇到过同样的问题,但我们确实找到了手动解决这些问题的方法。我想分享一下,以防它能帮助你弄清楚发生了什么,尽管我认为国税局需要做出改变。

有3个问题需要处理。

  1. 在标头中有Create和Expired的时间戳,我们必须在这些时间戳上添加毫秒。

  2. 如上所述,我们不得不删除传输编码:从传输中分块(这是我们在Fiddler中手动完成的(。

  3. 我不得不自己把整个信息压缩成gzip。该程序对消息进行了gzip处理,但当我查看代码中的压缩消息和发送的最终消息时,开头添加了8个字符,结尾的一部分被更改了。如果我把身体单独用gzip包起来,然后把它放回fiddler(去掉大块的(,那么我会得到成功的回应。

感谢Tim Schumacher,我能够使用此解决方案,对我的自定义ssl套接字工厂进行了更改

HTTPConduit http = (HTTPConduit) client.getConduit();
TLSClientParameters tlsParms = new TLSClientParameters();
tlsParms.setSSLSocketFactory(sslContext.getSocketFactory());
tlsParms.setSecureSocketProtocol("TLSv1.2");
http.setTlsClientParameters(tlsParms);
HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setAllowChunking(false);
http.setClient(policy);

我确实遇到了同样的问题。我看不出你的代码或SOAP信封有任何问题,所以我唯一的建议是写信给IRS AIR邮箱,他们会进行调查。这就是他们目前对我的案件所做的。

相关内容

  • 没有找到相关文章

最新更新