/* * Function verifies if the AS2 message is signed and the required certificate is present in the Sender's profile in Services world. * If the certificate is present, it will assign the certificate ID to the Services certificateId field. * If the certificate is not present, the migration will still succeed showing a warning message displaying the Agreement name and missing thumbprint. */ private void CleanAs2ProtocolSettings(Services.AS2ProtocolSettings cloudProtocolSettings, Services.BusinessProfile senderProfile) { if (cloudProtocolSettings.MessageSigned == true && cloudProtocolSettings.SigningCertificateId == null) { var certificateReference = senderProfile.CertificateReferences.Where(cert => cert.Thumbprint == cloudProtocolSettings.SigningCertificateThumbprint).FirstOrDefault(); if (certificateReference == null) { cloudProtocolSettings.OverrideGroupSigningCertificate = false; cloudProtocolSettings.MessageSigned = false; signingThumbprintMissing = cloudProtocolSettings.SigningCertificateThumbprint; cloudProtocolSettings.SigningCertificateThumbprint = null; } else { cloudProtocolSettings.SigningCertificateId = certificateReference.Id; } } senderProfileName = senderProfile.Name; }
private Services.AS2ProtocolSettings CreateAS2ProtocolSettings(Server.AS2ProtocolSettings serverProtocolSettings) { Services.AS2ProtocolSettings cloudProtocolSettings = new Services.AS2ProtocolSettings(); cloudProtocolSettings.AckHttpExpect100Continue = serverProtocolSettings.AcknowledgementConnectionSettings.HttpExpect100ContinueSupported; cloudProtocolSettings.AckIgnoreCertificateNameMismatch = serverProtocolSettings.AcknowledgementConnectionSettings.IgnoreCertificateNameMismatch; cloudProtocolSettings.AckKeepHttpConnectionAlive = serverProtocolSettings.AcknowledgementConnectionSettings.KeepHttpConnectionAlive; cloudProtocolSettings.AckUnfoldHttpHeaders = serverProtocolSettings.AcknowledgementConnectionSettings.UnfoldHttpHeaders; cloudProtocolSettings.AutogenerateFileName = serverProtocolSettings.EnvelopeSettings.AutogenerateFileName; cloudProtocolSettings.CheckCertificateRevocationListOnReceive = serverProtocolSettings.ValidationSettings.CheckCertificateRevocationListOnReceive; cloudProtocolSettings.CheckCertificateRevocationListOnSend = serverProtocolSettings.ValidationSettings.CheckCertificateRevocationListOnSend; cloudProtocolSettings.CheckDuplicateMessage = serverProtocolSettings.ValidationSettings.CheckDuplicateMessage; cloudProtocolSettings.DispositionNotificationTo = serverProtocolSettings.MDNSettings.DispositionNotificationTo; cloudProtocolSettings.EnableNRRForInboundDecodedMessages = serverProtocolSettings.SecuritySettings.EnableNRRForInboundDecodedMessages; cloudProtocolSettings.EnableNRRForInboundEncodedMessages = serverProtocolSettings.SecuritySettings.EnableNRRForInboundEncodedMessages; cloudProtocolSettings.EnableNRRForInboundMDN = serverProtocolSettings.SecuritySettings.EnableNRRForInboundMDN; cloudProtocolSettings.EnableNRRForOutboundDecodedMessages = serverProtocolSettings.SecuritySettings.EnableNRRForOutboundDecodedMessages; cloudProtocolSettings.EnableNRRForOutboundEncodedMessages = serverProtocolSettings.SecuritySettings.EnableNRRForOutboundEncodedMessages; cloudProtocolSettings.EnableNRRForOutboundMDN = serverProtocolSettings.SecuritySettings.EnableNRRForOutboundMDN; cloudProtocolSettings.EncryptionAlgorithm = (short)serverProtocolSettings.ValidationSettings.EncryptionAlgorithm; cloudProtocolSettings.FileNameTemplate = serverProtocolSettings.EnvelopeSettings.FileNameTemplate; cloudProtocolSettings.HttpExpect100Continue = serverProtocolSettings.MessageConnectionSettings.HttpExpect100ContinueSupported; cloudProtocolSettings.IgnoreCertificateNameMismatch = serverProtocolSettings.MessageConnectionSettings.IgnoreCertificateNameMismatch; cloudProtocolSettings.InterchangeDuplicatesValidity = serverProtocolSettings.ValidationSettings.InterchangeDuplicatesValidity; cloudProtocolSettings.KeepHttpConnectionAlive = serverProtocolSettings.MessageConnectionSettings.KeepHttpConnectionAlive; cloudProtocolSettings.MaximumHttpRetryAttempts = serverProtocolSettings.ErrorSettings.MaximumHttpRetryAttempts; cloudProtocolSettings.MaxResendAttempts = serverProtocolSettings.ErrorSettings.MaximumResendAttempts; cloudProtocolSettings.MDNText = serverProtocolSettings.MDNSettings.MDNText; cloudProtocolSettings.MessageCompressed = serverProtocolSettings.ValidationSettings.MessageCompressed; cloudProtocolSettings.MessageContentType = serverProtocolSettings.EnvelopeSettings.MessageContentType; cloudProtocolSettings.MessageEncrypted = serverProtocolSettings.ValidationSettings.MessageEncrypted; if (cloudProtocolSettings.MessageEncrypted == true) { cloudProtocolSettings.MessageEncrypted = false; cloudProtocolSettings.EncryptionCertificateId = null; cloudProtocolSettings.EncryptionCertificateThumbprint = null; isMessageEncrypted = true; } cloudProtocolSettings.MessageSigned = serverProtocolSettings.ValidationSettings.MessageSigned; if (cloudProtocolSettings.MessageSigned == true) { cloudProtocolSettings.SigningCertificateId = null; cloudProtocolSettings.SigningCertificateThumbprint = serverProtocolSettings.SecuritySettings.SigningCertificateThumbprint; } cloudProtocolSettings.MicHashingAlgorithm = (short)serverProtocolSettings.MDNSettings.MicHashingAlgorithm; cloudProtocolSettings.NeedMDN = serverProtocolSettings.MDNSettings.NeedMDN; cloudProtocolSettings.OverrideGroupSigningCertificate = serverProtocolSettings.SecuritySettings.OverrideGroupSigningCertificate; cloudProtocolSettings.OverrideMessageProperties = serverProtocolSettings.ValidationSettings.OverrideMessageProperties; cloudProtocolSettings.OverrideSendPort = serverProtocolSettings.ErrorSettings.OverrideSendPort; cloudProtocolSettings.ProcessMDNtoMsgBox = serverProtocolSettings.MDNSettings.SendInboundMDNToMessageBox; cloudProtocolSettings.ProtocolName = serverProtocolSettings.ProtocolName; if (serverProtocolSettings.MDNSettings.ReceiptDeliveryUrl != null) { cloudProtocolSettings.ReceiptDeliveryUrl = serverProtocolSettings.MDNSettings.ReceiptDeliveryUrl.ToString(); } cloudProtocolSettings.ResendIfMDNNotReceived = serverProtocolSettings.ErrorSettings.ResendIfMDNNotReceived; cloudProtocolSettings.SendMDNAsynchronously = serverProtocolSettings.MDNSettings.SendMDNAsynchronously; cloudProtocolSettings.SignMDN = serverProtocolSettings.MDNSettings.SignMDN; cloudProtocolSettings.SignOutboundMDNIfOptional = serverProtocolSettings.MDNSettings.SignOutboundMDNIfOptional; cloudProtocolSettings.SuspendDuplicateMessage = serverProtocolSettings.ErrorSettings.SuspendDuplicateMessage; cloudProtocolSettings.SuspendMessageOnFileNameGenerationError = serverProtocolSettings.EnvelopeSettings.SuspendMessageOnFileNameGenerationError; cloudProtocolSettings.TransmitFileNameInMimeHeader = serverProtocolSettings.EnvelopeSettings.TransmitFileNameInMimeHeader; cloudProtocolSettings.UnfoldHttpHeaders = serverProtocolSettings.MessageConnectionSettings.UnfoldHttpHeaders; return(cloudProtocolSettings); }