public IRaspRequest PrepareRequest(OiosiMessage message, UddiType uddiType) { // First we need to find out what type of object we are sending DocumentTypeConfigSearcher typeSearcher = new DocumentTypeConfigSearcher(); DocumentTypeConfig docTypeConfig = typeSearcher.FindUniqueDocumentType(message.MessageXml); // 1. Lookup the endpoint address and certificate using UDDI UddiLookupResponse uddiResponse = this.Uddi(message, docTypeConfig); // 2. Download the server certificate using LDAP X509Certificate2 serverCert = this.Ldap(uddiResponse.CertificateSubjectSerialNumber); // 3. Check the validity status of the certificate using OCSP this.Revocation(serverCert); // 4. Let the user configure the client certificate Console.WriteLine("\nPlease configure the certificate used for sending\n----------------------------------------------------"); X509Certificate2 clientCert = this.GetCertificate(uddiType); Credentials credentials = new Credentials(new OcesX509Certificate(clientCert), new OcesX509Certificate(serverCert)); // Create request RaspRequest raspRequest = new RaspRequest(new Request(uddiResponse.EndpointAddress.GetAsUri(), credentials)); return(raspRequest); }
public void DocumentIdMustBeAddedAsCustomHeader() { var documentId = "678"; OiosiMessage oiosiMessage = GetInvoiceOiosiMessage(); // Call private method Type raspRequestType = typeof(RaspRequest); MethodInfo addCustomHeadersMethod = raspRequestType.GetMethod("AddCustomHeaders", BindingFlags.NonPublic | BindingFlags.Instance); OcesX509Certificate client = new OcesX509Certificate(new X509Certificate2(TestConstants.PATH_CERTIFICATE_EMPLOYEE, TestConstants.PASSWORD_CERTIFICATE_EMPLOYEE)); OcesX509Certificate server = new OcesX509Certificate(new X509Certificate2(TestConstants.PATH_CERTIFICATE_EMPLOYEE, TestConstants.PASSWORD_CERTIFICATE_EMPLOYEE)); Credentials c1 = new Credentials(client, server); RaspRequest raspRequest = new RaspRequest(new Request(new Uri("http://test.dk"), c1)); addCustomHeadersMethod.Invoke(raspRequest, new object[] { oiosiMessage, documentId }); bool headerValueAdded = false; foreach (var messageHeader in oiosiMessage.MessageHeaders) { var headerValue = messageHeader.Value.ToString(); if (headerValue.Contains(documentId)) { headerValueAdded = true; } } Assert.IsTrue(headerValueAdded, "DocumentId not found in header."); }
protected Response SendRequestAndGetResponse(FileInfo file) { string documentId = "TEST:" + Guid.NewGuid(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(file.FullName); OiosiMessage oiosiMessage = new OiosiMessage(xmlDocument); RaspRequest raspRequest = this.GetRaspRequest(oiosiMessage); Response response; raspRequest.GetResponse(oiosiMessage, documentId, out response); return(response); }
protected RaspRequest GetRaspRequest(OiosiMessage oiosiMessage) { DocumentTypeConfigSearcher documentTypeConfigSearcher = new DocumentTypeConfigSearcher(); DocumentTypeConfig documentTypeConfig = documentTypeConfigSearcher.FindUniqueDocumentType(oiosiMessage.MessageXml); LookupParameters messageParameters = this.GetMessageParameters(oiosiMessage, documentTypeConfig); UddiLookupResponse uddiResponse = this.PerformUddiLookup(messageParameters); Uri endpointAddressUri = uddiResponse.EndpointAddress.GetAsUri(); OcesX509Certificate endpointCertificate = this.GetEndpointCertificateFromLdap(uddiResponse.CertificateSubjectSerialNumber); this.ValidateEndpointCertificate(endpointCertificate); //X509Certificate2 clientCertificate = CertificateUtil.InstallAndGetFunctionCertificateFromCertificateStore(); X509Certificate2 clientCertificate = this.ClientCertificate; Credentials credentials = new Credentials(new OcesX509Certificate(clientCertificate), endpointCertificate); Request request = new Request(endpointAddressUri, credentials); RaspRequest raspRequest = new RaspRequest(request); return(raspRequest); }