You need to sign in or sign up before continuing.
Commit 3db07299 by GulnazS

Обновила структуру forwardApplication.updateApplication.applicationData.data

parent 1c06f8c2
{
"data": {
"digiSign": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><application> <applicationId>16786483351013</applicationId> <serviceTypeCode>C09-03</serviceTypeCode> <registerOrgCode>MJ-Z-A-A3</registerOrgCode> <executorOrgCode>MTC-CTSAT</executorOrgCode> <smsCode>26</smsCode> <ds:Signature xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/> <ds:SignatureMethod Algorithm=\"http://www.w3.org/2001/04/xmldsig-more#gost34310-gost34311\"/> <ds:Reference URI=\"\"> <ds:Transforms> <ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/> <ds:Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/> </ds:Transforms> <ds:DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmldsig-more#gost34311\"/> <ds:DigestValue>TYfBSxplQbKzyUS2VNUMZfvFnd7solPE+lDWGh47Mqs=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> d/T/tjTj7hFVL8wOZOyRACUe9MUIcdVtLS2Xg/5+M88A6PsZ5bvsgL4ZRr7SPXZhhVrRTk0mWhHE 0Tw52eMzWA== </ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate> MIIE/zCCBKmgAwIBAgIUIBixm4H8yuQ8wUQFaoZeR4YOroIwDQYJKoMOAwoBAQECBQAwUzELMAkG A1UEBhMCS1oxRDBCBgNVBAMMO9Kw0JvQotCi0KvSmiDQmtCj05jQm9CQ0J3QlNCr0KDQo9Co0Ksg 0J7QoNCi0JDQm9Cr0pogKEdPU1QpMB4XDTI0MDExOTA2MzA1OVoXDTI1MDExODA2MzA1OVowggGG MSgwJgYDVQQDDB/QlNKu0JnQodCV0JrQntCSINCV0KDSmtCQ0J3QkNCiMRkwFwYDVQQEDBDQlNKu 0JnQodCV0JrQntCSMRgwFgYDVQQFEw9JSU44NjA5MDQzNTA1MDQxCzAJBgNVBAYTAktaMYG6MIG3 BgNVBAoMga/QndC10LrQvtC80LzQtdGA0YfQtdGB0LrQvtC1INCw0LrRhtC40L7QvdC10YDQvdC+ 0LUg0L7QsdGJ0LXRgdGC0LLQviDCq9CT0L7RgdGD0LTQsNGA0YHRgtCy0LXQvdC90LDRjyDQutC+ 0YDQv9C+0YDQsNGG0LjRjyDCq9Cf0YDQsNCy0LjRgtC10LvRjNGB0YLQstC+INC00LvRjyDQs9GA 0LDQttC00LDQvcK7MRgwFgYDVQQLDA9CSU4xNjA0NDAwMDcxNjExHTAbBgNVBCoMFNCW0JDQndKS 0JDQl9Cr0rDQm9CrMSIwIAYJKoZIhvcNAQkBFhNlLmR1aXNla292QGdvdjRjLmt6MGwwJQYJKoMO AwoBAQEBMBgGCiqDDgMKAQEBAQEGCiqDDgMKAQMBAQADQwAEQCZC0flH53mTe//m7pNTyLx+l+qZ gMjCcJM1iKmytCW0fJORPmKdQl1hNnhFnZ6HjL3av8e0NDrpwWxH6szKfCWjggIOMIICCjAOBgNV HQ8BAf8EBAMCBsAwMwYDVR0lBCwwKgYIKwYBBQUHAwQGCCqDDgMDBAECBgkqgw4DAwQBAgUGCSqD DgMDBAMCATBeBgNVHSAEVzBVMFMGByqDDgMDAgEwSDAhBggrBgEFBQcCARYVaHR0cDovL3BraS5n b3Yua3ovY3BzMCMGCCsGAQUFBwICMBcMFWh0dHA6Ly9wa2kuZ292Lmt6L2NwczBYBgNVHR8EUTBP ME2gS6BJhiJodHRwOi8vY3JsLnBraS5nb3Yua3ovbmNhX2dvc3QuY3JshiNodHRwOi8vY3JsMS5w a2kuZ292Lmt6L25jYV9nb3N0LmNybDBcBgNVHS4EVTBTMFGgT6BNhiRodHRwOi8vY3JsLnBraS5n b3Yua3ovbmNhX2RfZ29zdC5jcmyGJWh0dHA6Ly9jcmwxLnBraS5nb3Yua3ovbmNhX2RfZ29zdC5j cmwwYwYIKwYBBQUHAQEEVzBVMC8GCCsGAQUFBzAChiNodHRwOi8vcGtpLmdvdi5rei9jZXJ0L25j YV9nb3N0LmNlcjAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AucGtpLmdvdi5rejAdBgNVHQ4EFgQU IBixm4H8yuQ8wUQFaoZeR4YOroIwDwYDVR0jBAgwBoAEW2pz6TAWBgYqgw4DAwUEDDAKBggqgw4D AwUBATANBgkqgw4DCgEBAQIFAANBAA/Kxy/Gbx/IYSPUC+WVXD5u+RKP5TzOavdXyo/bWRpflycv oVV1k88RygN0mAcOu8j2ArAppEQ2/vBB863x6eM= </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature></application>",
"confirmOrder": {
"digiSign": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?> <order xmlns=\"http://pki.gov.kz/api/ws/iiscon/wsdl\"> <certificateRequests><csr>-----BEGIN CERTIFICATE REQUEST----- MIICFzCCAX8CAQAwgYUxJjAkBgNVBAMMHdCW0rDQnNCQ0KHQldCZ0IbQoiDQkNCR 0JfQkNCbMRswGQYDVQQEDBLQltKw0JzQkNCh0JXQmdCG0KIxGDAWBgNVBAUTD0lJ Tjk1MDUwNDM1MTIyNTELMAkGA1UEBhMCS1oxFzAVBgNVBCoMDtKS0JDQndCY0rDQ m9CrMIGsMCMGCSqDDgMKAQECAjAWBgoqgw4DCgEBAgIBBggqgw4DCgEDAwOBhAAE gYDD+rMP6aEeAOOOmSOxoCSy9z8yNsVwpVZQOXSnipmWC8c935df/CzV1Wor2G1p LcEd/xXNIEGpQwZU2w6i2QzjwuZJnrqsOLk18qsJ5SG2Y0y/2GUb+KfPpEnGKzuJ uCAgmKPqXguGhtd4wrUIn+H2esvOo0mQLrTQC0PG8OOEmaBDMEEGCSqGSIb3DQEJ DjE0MDIwMAYGKoMOAwMFBCYwJAYIKoMOAwMFAQEMGEM6XFVzZXJzXGxhXERlc2t0 b3BcdGVzczAOBgoqgw4DCgEBAgMCBQADgYEAM2NfZ3ZuVxSzstvkj4V84E8bYGJY FaA9anuQZcK1X59sJxV2lRgOhAbJgOUCvly4hWp86pZliUBsQX4Gs4zO+/4hXnEQ UkpSgiRnow0qzQiRBpRAhenHQzFPxG7f1YYNJfXk6zQnW5+mAB76ZNwPSnFvlZPB O7iiVGlEe1Tr7mc= -----END CERTIFICATE REQUEST----- </csr><requestTemplateName>individ_sign_ng</requestTemplateName><subjectDN><rdns><rdnName>C</rdnName><value>KZ</value></rdns><rdns><rdnName>SERIALNUMBER</rdnName><value>IIN990312350989</value></rdns><rdns><rdnName>SURNAME</rdnName><value>ЖҰМАСЕЙІТ</value></rdns><rdns><rdnName>CN</rdnName><value>ЖҰМАСЕЙІТ АБЗАЛ</value></rdns><rdns><rdnName>G</rdnName><value>ҒАНИҰЛЫ</value></rdns></subjectDN><publicKey>048180c3fab30fe9a11e00e38e9923b1a024b2f73f3236c570a556503974a78a99960bc73ddf975ffc2cd5d56a2bd86d692dc11dff15cd2041a9430654db0ea2d90ce3c2e6499ebaac38b935f2ab09e521b6634cbfd8651bf8a7cfa449c62b3b89b8202098a3ea5e0b8686d778c2b5089fe1f67acbcea349902eb4d00b43c6f0e38499</publicKey></certificateRequests><referenceNumber>16786483351013</referenceNumber><orderType>ORDER_TYPE_ONLINE</orderType><storageCode>PKCS12</storageCode> <ds:Signature xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" Id=\"1\"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/> <ds:SignatureMethod Algorithm=\"urn:ietf:params:xml:ns:pkigovkz:xmlsec:algorithms:gostr34102015-gostr34112015-512\"/> <ds:Reference URI=\"\"> <ds:Transforms> <ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/> <ds:Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/> </ds:Transforms> <ds:DigestMethod Algorithm=\"urn:ietf:params:xml:ns:pkigovkz:xmlsec:algorithms:gostr34112015-512\"/> <ds:DigestValue>AyHzL7p7uaWeQQOX/LNdiwgzperl8jcbL1zj2Tckn+VJ5AZBrvV8tOEFxZYjXqUe McEAcx1XCpOCIyV/lkiU5Q==</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>yAgTbel78I5EoLX4t3V8PjJK9t42AYaoJ3JJP5dFIjrWDU2tvbNlf3CZlspd5Scl ws+Bkm4CdVVJjErLpPvh2CqCxfe2FG6IYI7d3Y41kQxMmSru1K4tTkE6gX8rm446 v8LDqyLdsjGC1Kq+oDRhZPu1Wkwrnr0b5jziZYiA6m0=</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MIIFXDCCBMSgAwIBAgIUP9iK/steUIeYn3G5oCV4rWMW7sAwDgYKKoMOAwoBAQID AgUAMF0xTjBMBgNVBAMMRdKw0JvQotCi0KvSmiDQmtCj05jQm9CQ0J3QlNCr0KDQ o9Co0Ksg0J7QoNCi0JDQm9Cr0pogKEdPU1QpIFRFU1QgMjAyMjELMAkGA1UEBhMC S1owHhcNMjUwOTI1MTA0ODM1WhcNMjYwOTI1MTA0ODM1WjCCAWUxKjAoBgNVBAMM IdCT0JDQkdCR0JDQodCe0JLQkCDQkNCZ0JPQldCg0JjQnDEbMBkGA1UEBAwS0JPQ kNCR0JHQkNCh0J7QktCQMRgwFgYDVQQFEw9JSU45MDAyMjc0NTEwNTMxCzAJBgNV BAYTAktaMYG3MIG0BgNVBAoMgawi0prQsNC30LDSm9GB0YLQsNC9INCg0LXRgdC/ 0YPQsdC70LjQutCw0YHRi9C90YvSoyDQttCw0YHQsNC90LTRiyDQuNC90YLQtdC7 0LXQutGCINC80LjQvdC40YHRgtGA0LvRltCz0ZYiINGA0LXRgdC/0YPQsdC70LjQ utCw0LvRi9KbINC80LXQvNC70LXQutC10YLRgtGW0Log0LzQtdC60LXQvNC1Y9GW MRgwFgYDVQQLDA9CSU4xNjExNDAwMTY3NDcxHzAdBgNVBCoMFtCV0KDQkdCe0JvQ kNCi0J7QktCd0JAwgawwIwYJKoMOAwoBAQICMBYGCiqDDgMKAQECAgEGCCqDDgMK AQMDA4GEAASBgF1jluwQwWc7CDuLz+eUnwsjVZksc7UNFXrYkYpnJKp5mLiXe9E1 QJlpDja5fYSJo2ksD/3TW2gzcj72CuGSUoTg8xqWpbO6dWtaYXsqRBDdDlJG93Nv esUuRNPsKwABxEbPOuOqsxsi0s63HEWdE3B7HFJOlqXjxMNQybYyZhDxo4IB/jCC AfowKAYDVR0lBCEwHwYIKwYBBQUHAwQGCCqDDgMDBAECBgkqgw4DAwQBAgEwOAYD VR0gBDEwLzAtBgYqgw4DAwIwIzAhBggrBgEFBQcCARYVaHR0cDovL3BraS5nb3Yu a3ovY3BzMEEGA1UdHwQ6MDgwNqA0oDKGMGh0dHA6Ly90ZXN0LnBraS5nb3Yua3ov Y3JsL25jYV9nb3N0MjAyMl90ZXN0LmNybDBDBgNVHS4EPDA6MDigNqA0hjJodHRw Oi8vdGVzdC5wa2kuZ292Lmt6L2NybC9uY2FfZ29zdDIwMjJfZF90ZXN0LmNybDAO BgNVHQ8BAf8EBAMCA8gwgaMGCCsGAQUFBwEBBIGWMIGTMD0GCCsGAQUFBzAChjFo dHRwOi8vdGVzdC5wa2kuZ292Lmt6L2NlcnQvbmNhX2dvc3QyMDIyX3Rlc3QuY2Vy MCgGCCsGAQUFBzABhhxodHRwOi8vdGVzdC5wa2kuZ292Lmt6L29jc3AvMCgGCCsG AQUFBzABhhxodHRwOi8vdGVzdC5wa2kuZ292Lmt6L29jc3AvMB0GA1UdDgQWBBS/ 2Ir+y15Qh5ifcbmgJXitYxbuwDAfBgNVHSMEGDAWgBT60ksbo6DJYf4cqFA+aqK7 RQ24ozAWBgYqgw4DAwUEDDAKBggqgw4DAwUBATAOBgoqgw4DCgEBAgMCBQADgYEA x2njngNJNGVWGE6Zp7/c7nn7/P4MKUzcrpzZ5gdMGa1U1plLx8WuRV7lTLP/dln/ y4I1kzU+viQJIdzjCYOVlg56YaoMHoSWGiNh5kufFJqwNsnNeJpXx0gFnXO7t05j qngmG5TTYc8v+qzyUX2HWx9/IfgPocxKieVPxfbIBzs=</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature></order>"
}
}
}
...@@ -44,7 +44,7 @@ public class ApplicationData { ...@@ -44,7 +44,7 @@ public class ApplicationData {
private Documents documents; private Documents documents;
@XmlElement @XmlElement
private String data; private kz.arta.nca_iiscon.data.forward.application.Data data;
@XmlElement @XmlElement
private ApplicationAttrs applicationAttrs; private ApplicationAttrs applicationAttrs;
......
package kz.arta.nca_iiscon.data.forward.application;
import lombok.Data;
import javax.xml.bind.annotation.*;
@Data
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "confirmOrder", propOrder = {"digiSign"}, namespace = "http://pki.gov.kz/api/ws/iiscon/wsdl")
public class ConfirmOrder {
@XmlElement(namespace = "http://pki.gov.kz/api/ws/iiscon/wsdl")
private String digiSign;
}
package kz.arta.nca_iiscon.data.forward.application;
import javax.xml.bind.annotation.*;
@lombok.Data
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {"digiSign", "confirmOrder"})
public class Data {
@XmlElement
private String digiSign;
@XmlElement(name = "confirmOrder", namespace = "http://pki.gov.kz/api/ws/iiscon/wsdl")
private ConfirmOrder confirmOrder;
}
...@@ -88,15 +88,21 @@ public class ForwardSOAPHandler implements SOAPHandler<SOAPMessageContext> { ...@@ -88,15 +88,21 @@ public class ForwardSOAPHandler implements SOAPHandler<SOAPMessageContext> {
} }
private void processDataElement(SOAPElement parent) throws SOAPException { private void processDataElement(SOAPElement parent) throws SOAPException {
processDataElement(parent, true);
}
private void processDataElement(SOAPElement parent, boolean isTopLevel) throws SOAPException {
Iterator iterator = parent.getChildElements(); Iterator iterator = parent.getChildElements();
while (iterator.hasNext()) { while (iterator.hasNext()) {
Object obj = iterator.next(); Object obj = iterator.next();
if (obj instanceof SOAPElement) { if (obj instanceof SOAPElement) {
SOAPElement element = (SOAPElement) obj; SOAPElement element = (SOAPElement) obj;
String localName = element.getLocalName(); String localName = element.getLocalName();
SOAPElement parentElement = element.getParentElement();
String parentName = parentElement != null ? parentElement.getLocalName() : "";
// Если это data элемент // Если это data элемент внутри requestData (главный data с xsi:type)
if ("data".equals(localName)) { if ("data".equals(localName) && "requestData".equals(parentName)) {
// Убираем префикс у data // Убираем префикс у data
element.setPrefix(""); element.setPrefix("");
...@@ -114,9 +120,37 @@ public class ForwardSOAPHandler implements SOAPHandler<SOAPMessageContext> { ...@@ -114,9 +120,37 @@ public class ForwardSOAPHandler implements SOAPHandler<SOAPMessageContext> {
// Обрабатываем дочерние элементы data // Обрабатываем дочерние элементы data
processForwardApplicationChildren(element); processForwardApplicationChildren(element);
} }
// Если это data элемент внутри applicationData (вложенный data БЕЗ xsi:type)
else if ("data".equals(localName) && "applicationData".equals(parentName)) {
// Убираем префикс у data
element.setPrefix("");
// НЕ добавляем xsi:type для вложенного data
// Просто обрабатываем его дочерние элементы (digiSign, confirmOrder)
processInnerDataChildren(element);
}
// Рекурсивно обрабатываем детей // Рекурсивно обрабатываем детей
processDataElement(element); processDataElement(element, false);
}
}
}
private void processInnerDataChildren(SOAPElement dataElement) throws SOAPException {
Iterator iterator = dataElement.getChildElements();
while (iterator.hasNext()) {
Object obj = iterator.next();
if (obj instanceof SOAPElement) {
SOAPElement element = (SOAPElement) obj;
String localName = element.getLocalName();
// Убираем префиксы у digiSign и confirmOrder
element.setPrefix("");
// Для confirmOrder добавляем namespace
if ("confirmOrder".equals(localName)) {
element.setAttribute("xmlns", "http://pki.gov.kz/api/ws/iiscon/wsdl");
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment