AS4Web Connector

Properties   Config Settings  

The AS4Web Component adds AS4 receive functionality to MuleSoft.

Remarks

The AS4Web Connector supports receiving files into BizTalk. Using a simple application-like design, the connector allows you to easily incorporate secure EDI (EDI-INT) exchange into your current e-Business process architecture.

AS4Web Receive Connector

The AS4Web Receive Connector handles incoming push requests (accepts files sent by your partner to you). The AS4Web Receive Connector requires another entity to listen for incoming HTTP requests and to send responses back to the client. An HTTP Listener may be used in conjunction with the AS4Web Receive Connector to create a fully-functional AS4Web server.

In order to use the AS4Web Receive Connector, you must set the TradingPartner and ReceivingPartner properties. It is recommended that you set an MDNSigningCert in order to provide non-repudiation for your AS2 response.

To decrypt incoming messages set DecryptionCert to your private key. To verify the signature of incoming message set SignerCert to your partner's public certificate. To sign receipts sent back to you partner set SigningCert. If a receipt should be sent, set SendReceipt to Yes.

Once the incoming AS4 request has been parsed and verified, the files are submitted to your flow as individual Mule events. Upon successful submission, the connector will generate a receipt as necessary.

Connector Attributes

Aside from generating the receipt, when AS4Web connector finishes processing it will also produce a group of AS4 attributes. AS4RecAttributes is a special attribute consisting of a collection of EDIData entities from the request.

Each item in the collection has its own set of attributes such as EDIProperties, EDISchemaLocation, EDISchemaNamespace, EDISchemaVersion, EDIType and Output. The 'For Each' Scope will allow you to iterate through the collection of EDIData entities and query these attributes. The sample XML configuration is as follows: <foreach collection="#[attributes.AS4RecAttributes]"> <logger message="#[payload.AS4FromId]"/> </foreach>

HTTP Listener Configuration

In a typical scenario a HTTP listener is used to receive the original request and send the response because the connector does not have a webserver of its own. The connector will process the request and generate the response, but will rely on the HTTP Listener to relay the response back to the client. In order to configure the HTTP Listener to relay the response to the client, follow the below steps.

In the Mule HTTP Listener's Responses section set the Body to #[attributes.ResponseBody]. Then, add a new header with value 'Content-Type' and value attributes.ResponseHeaders.'Content-Type'.

The corresponding Configuration XML may look like:

<http:response > <http:body ><![CDATA[#[attributes.ResponseBody]]]></http:body> <http:headers ><![CDATA[#[output applicaton/java --- { "Content-Type" : attributes.ResponseHeaders.'Content-Type' }]]]></http:headers> </http:response>

Receiver Property List


The following is the full list of the properties of the receiver Connector with short descriptions. Click on the links for further details.

AgreementRefThe agreement reference.
AS4FromIdThe Id of the party. This value is required.
AS4FromIdTypeThe optional type of the Id. If specified this value should be the domain to which the Id belongs.
AS4FromRoleThis field specifies the role of the party. This may be any value agreed upon by the trading partners.
AS4RecAttributesTBD.
AS4ToIdThe Id of the party. This value is required.
AS4ToIdTypeThe optional type of the Id. If specified this value should be the domain to which the Id belongs.
AS4ToRoleThis field specifies the role of the party. This may be any value agreed upon by the trading partners.
ConversationIdThe Conversation Id of the message.
DecryptionCertThe certificate with private key used to decrypt.
FirewallA set of properties related to firewall access.
HTTPProxyA set of properties related to proxy access.
LogDirectoryThe path to a directory for logging.
LogFileThe file to write logging information to at runtime.
LogModeWhat information gets logged during component execution.
LogTypeHow information gets logged during component execution.
MessageIdThe unique Id of the message.
MessagePropertiesA collection of message properties.
OtherDefines a set of configuration settings to be used by the component.
ProfileThe AS4 profile.
ReceiptContentThe content of the receipt.
ReceiptRefToMessageIdThe Message Id to which this receipt applies.
ReceivingPartnerThe identity of AS4 receiving entity.
RequestHeadersThe headers included in the AS4 request.
ResponseBodyThe response body to be sent to the client.
ResponseHeadersA collection of resposne headers.
RuntimeLicenseSpecifies the component runtime license key.
SendReceiptWhether to send a receipt.
ServiceThe service which acts on the message.
ServiceActionThe action within a service that acts on the message.
ServiceTypeThe type of service.
SignatureAlgorithmSignature algorithm to be used in the message.
SignerCertThe public signing certificate of the partner.
SigningCertThe certificate used to sign the outgoing AS4 message.
SSLAcceptServerCertFor sending HTTPS requests, a server certificate to unconditionally accept.
SSLCertThe certificate to use for client authentication during the SSL handshake.
TempPathA temporary local directory where data can be stored before the component processes it.
TimeoutA timeout for the component.
TokenPasswordThe password used in UsernameToken authentication.
TokenUserThe user used in UsernameToken authentication.
TradingPartnerThe trading partner that will be communicating with this receive location.

Config Settings


The following is a list of config settings for the Connector with short descriptions. Click on the links for further details.

AgreementRefPModeAgreementRef PMode of message.
AgreementRefTypeThe type of AgreementRef.
AllowWarningsWhether warnings are interpreted as fatal errors.
AttachXMLFilesWhether to send XML files as attachments or within the SOAP body.
CloseStreamAfterProcessingWhether to close the input or output stream after processing.
CompressXMLPayloadsWhether to compress XML data.
ContentTransferEncodingThe content encoding of the payload data.
DetectDuplicatesWhether to detect duplicate messages when receiving.
EBPrefixSpecifies the prefix to use for messaging.
EDIDataPartId[i]Specified the part Id at the given index.
EnableTokenReferenceTokenTypeWhether to include the TokenType attribute in a SecurityTokenReference element.
EncryptionSecurityTokenFormatThe format to use for the security token when encryption.
FilenamePropertyDefines a part property to hold the filename.
ForceSigningCertWhether to force only the SigningCert to be used for signing.
FromId[i]The Id of the party specified by AS4From.
FromIdCountThe number of Ids for the party specified by AS4From.
FromIdType[i]The Id type of the party specified by AS4From.
IdRightA custom Id for the right side of the MessageId.
KeyAgreementMethodThe agreement method used for KeyWrap encryption algorithms.
KeyDerivationConcatKDFDigestMethodThe digest method used for the ConcatKDF key derivation method.
KeyDerivationMethodThe key derivation method used for KeyWrap encryption algorithms.
KeyEncryptionAlgorithmThe algorithm used to encrypt the key.
LogLevelThe level of information to log.
LogOptionsThe information to be written to log files.
MessageTypeIndicates the type of message received.
NormalizeIssuerSubjectWhether to normalize the certificate subject within the X509Data element.
OAEPMGF1HashAlgorithmThe MGF1 hash algorithm used when encrypting a key.
OAEPParamsThe hex encoded OAEP parameters to be used when encrypting a key.
OAEPRSAHashAlgorithmThe RSA hash algorithm used when encrypting a key.
ReceiptURLThe URL to which receipts are sent.
ReferenceHashAlgorithmThe hash algorithm used to has the data specified in the reference of a signature.
RequireEncryptionWhether encryption is required when processing received messages.
RequireSignatureWhether a signature is required when processing received messages.
ResponseFileA file from which to read the response.
SignerCACertThe CA certificates that issued the signer certificate.
SigningSecurityTokenFormatThe format to use for the security token when signing.
TempPathWhere temporary files are optionally written.
ToId[i]The Id of the party specified by AS4To.
ToIdCountThe number of Ids for the party specified by AS4To.
ToIdType[i]The Id type of the party specified by AS4To.
TokenPasswordTypeThe password type used in UsernameToken authentication.
TransformReceiptWhether to canonicalize the received receipt.
UseTransformedXMLAttachmentWhether to send the canonicalized XML.
ReuseSSLSessionDetermines if the SSL session is reused.
SSLCipherStrengthThe minimum cipher strength used for bulk encryption.
SSLEnabledCipherSuitesThe cipher suite to be used in an SSL negotiation.
SSLEnabledProtocolsUsed to enable/disable the supported security protocols.
SSLIncludeCertChainWhether the entire certificate chain is included in the SSLServerAuthentication event.
SSLSecurityFlagsFlags that control certificate verification.
TLS12SignatureAlgorithmsDefines the allowed TLS 1.2 signature algorithms when UseInternalSecurityAPI is True.
TLS12SupportedGroupsThe supported groups for ECC.
TLS13KeyShareGroupsThe groups for which to pregenerate key shares.
TLS13SignatureAlgorithmsThe allowed certificate signature algorithms.
TLS13SupportedGroupsThe supported groups for (EC)DHE key exchange.
AbsoluteTimeoutDetermines whether timeouts are inactivity timeouts or absolute timeouts.
LocalHostThe name of the local host or user-assigned IP interface through which connections are initiated or accepted.
TcpNoDelayWhether or not to delay when sending packets.
UseInternalSecurityAPITells the component whether or not to use the system security libraries or an internal implementation.

AgreementRef Property (AS4Web Connector)

The agreement reference.

Data Type

String

Default Value

""

Remarks

This property holds a value identifying the agreement between the two parties. The agreement is made outside the scope of the request and response and governs details about the interaction including reply mode, signing and encryption options, etc.

The value of this property should be set to a mutually agreed upon identifier. Both parties will use this value know what the expected requirements are for a particular request or response.

The format of this value is typically a URI, such as "http://mycompany.com/agreement_01" but can be any unique string that both parties are configured to accept. Another common format is the concatenation of the AS4From and AS4To values.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:CollaborationInfo/eb:AgreementRef"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

AS4FromId Property (AS4Web Connector)

The Id of the party. This value is required.

Data Type

String

Default Value

""

Remarks

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PartyInfo/eb:From/eb:PartyId"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

AS4FromIdType Property (AS4Web Connector)

The optional type of the Id. If specified this value should be the domain to which the Id belongs.

Data Type

String

Default Value

""

Remarks

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PartyInfo/eb:From/eb:PartyId@type"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

AS4FromRole Property (AS4Web Connector)

This field specifies the role of the party. This may be any value agreed upon by the trading partners.

Data Type

String

Default Value

"http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"

Remarks

This field specifies the role of the party. This may be any value agreed upon by the trading partners.

In AS4From this specified the role of the party sending the document. The default value is "http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator".

In AS4To this specifies the role of the party receiving the document. The default value is "http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder".

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PartyInfo/eb:From/eb:Role"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

AS4RecAttributes Property (AS4Web Connector)

TBD.

Data Type

AS4WebAttrList

Remarks

TBD.

This property is not available in the Sender.

AS4ToId Property (AS4Web Connector)

The Id of the party. This value is required.

Data Type

String

Default Value

""

Remarks

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PartyInfo/eb:From/eb:PartyId"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

AS4ToIdType Property (AS4Web Connector)

The optional type of the Id. If specified this value should be the domain to which the Id belongs.

Data Type

String

Default Value

""

Remarks

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PartyInfo/eb:From/eb:PartyId@type"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

AS4ToRole Property (AS4Web Connector)

This field specifies the role of the party. This may be any value agreed upon by the trading partners.

Data Type

String

Default Value

"http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"

Remarks

This field specifies the role of the party. This may be any value agreed upon by the trading partners.

In AS4From this specified the role of the party sending the document. The default value is "http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator".

In AS4To this specifies the role of the party receiving the document. The default value is "http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder".

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PartyInfo/eb:From/eb:Role"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

ConversationId Property (AS4Web Connector)

The Conversation Id of the message.

Data Type

String

Default Value

""

Remarks

This property specifies an Id that may be used to identify a set of related messages. This is required and if a value is not specified one will automatically be created.

Note: When Profile is set to ebpfENTSOG this value will always be empty.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:CollaborationInfo/eb:ConversationId"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

DecryptionCert Property (AS4Web Connector)

The certificate with private key used to decrypt.

Data Type

Certificate

Remarks

This property specifies the certificate with private key used to decrypt received data.

This property is not available in the Sender.

Firewall Property (AS4Web Connector)

A set of properties related to firewall access.

Data Type

Firewall

Remarks

This is a Firewall type property which contains fields describing the firewall through which the connector will attempt to connect.

HTTPPassword Property (AS4Web Connector)

A password if authentication is to be used.

Data Type

Password

Default Value

""

Remarks

This property holds the password used for HTTP authentication.

This property is not available in the Receiver.

HTTPProxy Property (AS4Web Connector)

A set of properties related to proxy access.

Data Type

Proxy

Remarks

This is a Proxy type property which contains fields describing the proxy through which the connector will attempt to connect.

HTTPUser Property (AS4Web Connector)

A user name if authentication is to be used.

Data Type

String

Default Value

""

Remarks

This property holds the user used for HTTP authentication.

This property is not available in the Receiver.

LogDirectory Property (AS4Web Connector)

The path to a directory for logging.

Data Type

String

Default Value

""

Remarks

The directory in which log files are created. The connector will create log files that detail each transmission.

The verbosity of the logs is controlled by LogLevel.

LogFile Property (AS4Web Connector)

The file to write logging information to at runtime.

Data Type

String

Default Value

""

Remarks

If LogDirectory is specified, log files will be written in the specified directory and LogFile will contain the path. A diagnostic log will be written with filename LogFile + ".log".

Since this log file is dynamically generated, this property can be read after the connector has processed the message to determine the exact name of the log file.

To write logging information to a file instead of using the connector's logging API, set this property to a valid file on disk and set the LogType property to "File".

LogMode Property (AS4Web Connector)

What information gets logged during component execution.

Data Type

Enumeration

Possible Values

Verbose (0)
Info (1)
Warning (2)
Error (3)
Fatal (4)


Default Value

3

Remarks

This property controls what information the connector logs. The possible values have the following affect on the connector's behavior:

VerboseThe connector will report all information regarding the transport.
InfoThe connector will report all major operations, as well as all warnings and errors.
WarningThe connector will report any conditions that could result in unpredictable behavior as well as errors.
ErrorThe connector will report all errors that prevent normal operations from completing.
FatalThe connector will report only serious errors that cause the connector to completely stop functioning.

LogType Property (AS4Web Connector)

How information gets logged during component execution.

Data Type

Enumeration

Possible Values

None (0)
Console (1)
File (2)


Default Value

1

Remarks

This property controls where the connector will log the information. The possible values have the following affect on the connector's behavior:

NoneThe connector will not report any logging information.
ConsoleThe connector will report all logging information to the console.
FileThe connector will report all logging information to a file. The desired file must be specified in the LogFile when this type has been selected.

MessageId Property (AS4Web Connector)

The unique Id of the message.

Data Type

String

Default Value

""

Remarks

This property provided the MessageId of the message. This is returned for informational purposes.

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

MessageProperties Property (AS4Web Connector)

A collection of message properties.

Data Type

String

Default Value

""

Remarks

This property holds message level properties. The properties are specified one per line. The property type is optional. The syntax is a follows: [PropertyType]PropertyName=PropertyValue PropertyName=PropertyValue For instance, the value below includes two properties, the first property does not include a type. Prop1=Value1 [string]Prop2=Value2

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

Other Property (AS4Web Connector)

Defines a set of configuration settings to be used by the component.

Data Type

String

Default Value

""

Remarks

The connector accepts one or more configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the connector, access to these internal properties is provided through the Other property.

The Other property may be set to one or more configuration settings (name/value pairs). Set one setting per line. For example: configname1=value1 configname2=value2

Profile Property (AS4Web Connector)

The AS4 profile.

Data Type

Enumeration

Possible Values

Standard (0)
ENTSOG (1)
ESENS (2)


Default Value

0

Remarks

This property specifies the AS4 profile to use. Different profiles may have different requirements and default options. Setting this property to the correct value ensures that the right options are selected in order to conform to the profile. Possible values are:

0 (ebpfStandard - default) The AS4 Profile of ebMS 3.0 Version 1.0 OASIS Standard
1 (ebpfENTSOG) The ENTSOG AS4 Profile
2 (ebpfEDelivery) The eDelivery AS4 Profile
2 (ebpfBDEW) The BDEW AS4 Profile

When Profile is set to ebpfENTSOG the following settings are automatically applied:

Property Value
CompressionFormat ebcfGZIP
EncryptionAlgorithm "AES128GCM"
ConversationId Remains empty
SignatureAlgorithm "SHA256"
OAEPRSAHashAlgorithm "SHA256"
OAEPMGF1HashAlgorithm "SHA256"

When Profile is set to ebpfEDelivery the following settings are automatically applied:

Property Value
CompressionFormat ebcfGZIP
EncryptionAlgorithm "AES128GCM"
RequireEncryption True
RequireSignature True
SignatureAlgorithm "SHA256"
OAEPRSAHashAlgorithm "SHA256"
OAEPMGF1HashAlgorithm "SHA256"
EncryptionSecurityTokenFormat 1 (Binary)
SigningSecurityTokenFormat 1 (Binary)
When Profile is set to ebpfBDEW the following settings are automatically applied:
Property Value
CompressionFormat ebcfGZIP
EncryptionAlgorithm "AES128GCM"
RequireEncryption True
RequireSignature True
SignatureAlgorithm "ECDSASHA256"
EncryptionSecurityTokenFormat 0 (X509)
SigningSecurityTokenFormat 3 (X509PKIPathv1)
ForceSigningCert True
KeyEncryptionAlgorithm KW-AES128
KeyAgreementMethod ECDH-ES
KeyDerivationMethod ConcatKDF
KeyDerivationConcatKDFDigestMethod SHA256
Note: When ebpfBDEW is selected, both the SigningCert and Encryption Cert(recipientCert) MUST use ECDSA with the BrainpoolP256r1 curve.

ReceiptContent Property (AS4Web Connector)

The content of the receipt.

Data Type

String

Default Value

""

Remarks

This is the raw XML of the receipt.

When using the Send connector this is populated from the response received from the server.

When using the Receive connector this is informational only and is populated with the receipt that was sent by the connector.

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

ReceiptRefToMessageId Property (AS4Web Connector)

The Message Id to which this receipt applies.

Data Type

String

Default Value

""

Remarks

This is the original Message Id from the initial transmission of the file.

When using the Send connector this is populated from the response received from the server.

When using the Receive connector this is informational only and is populated with the receipt that was sent by the connector.

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

ReceivingPartner Property (AS4Web Connector)

The identity of AS4 receiving entity.

Data Type

String

Default Value

""

Remarks

This is the Id of the trading partner that will be receiving AS4 transmissions for this receive location. When data is received, this will value will be checked against the value supplied by the sending entity to ensure that the document received is intended for this receiver.

This property is not available in the Sender.

RequestHeaders Property (AS4Web Connector)

The headers included in the AS4 request.

Data Type

String

Default Value

"#[attributes.headers]"

Remarks

This property should be set to the AS4 headers from the request. If the request was received by an HTTP listener and passed to this connector, these headers are available through '#[attributes.headers]' (or '#[message.inboundProperties.headers]' in Mule 3.X). The headers can also be specified as a string.

This property is not available in the Sender.

ResponseBody Property (AS4Web Connector)

The response body to be sent to the client.

Data Type

String

Default Value

""

Remarks

This property holds the response body that may be assigned to the HTTP response.

In a typical scenario a HTTP listener is used to receive the original request and send the response because the connector does not have a webserver of its own. The connector will process the request and generate the response, but will rely on the HTTP Listener to relay the response back to the client. In order to configure the HTTP Listener to relay the response to the client, follow the below steps.

In the Mule HTTP Listener's Responses section set the Body to #[attributes.ResponseBody]. Then, add a new header with value 'Content-Type' and value attributes.ResponseHeaders.'Content-Type'.

The corresponding Configuration XML may look like:

<http:response > <http:body ><![CDATA[#[attributes.ResponseBody]]]></http:body> <http:headers ><![CDATA[#[output applicaton/java --- { "Content-Type" : attributes.ResponseHeaders.'Content-Type' }]]]></http:headers> </http:response>

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

This property is not available in the Sender.

ResponseHeaders Property (AS4Web Connector)

A collection of resposne headers.

Data Type

String

Default Value

""

Remarks

This property holds an object of response headers that may be assigned to the HTTP response.

In a typical scenario a HTTP listener is used to receive the original request and send the response because the connector does not have a webserver of its own. The connector will process the request and generate the response, but will rely on the HTTP Listener to relay the response back to the client. In order to configure the HTTP Listener to relay the response to the client, follow the below steps.

In the Mule HTTP Listener's Responses section set the Body to #[attributes.ResponseBody]. Then, add a new header with value 'Content-Type' and value attributes.ResponseHeaders.'Content-Type'.

The corresponding Configuration XML may look like:

<http:response > <http:body ><![CDATA[#[attributes.ResponseBody]]]></http:body> <http:headers ><![CDATA[#[output applicaton/java --- { "Content-Type" : attributes.ResponseHeaders.'Content-Type' }]]]></http:headers> </http:response>

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

This property is not available in the Sender.

RuntimeLicense Property (AS4Web Connector)

Specifies the component runtime license key.

Data Type

String

Default Value

""

Remarks

You can use the RuntimeLicense property to set the runtime key for the connector license.

SendReceipt Property (AS4Web Connector)

Whether to send a receipt.

Data Type

Boolean

Default Value

true

Remarks

This property indicates whether a receipt should be sent after downloading files.

The connector will make multiple requests to download all outstanding files from the server. The receipt for the previous message will be bundled with the request for the next message.

This property is not available in the Sender.

Service Property (AS4Web Connector)

The service which acts on the message.

Data Type

String

Default Value

"http://docs.oasis-open.org/ebxml-msg/as4/200902/service"

Remarks

This property specifies the service which acts on the message. This should only be changed from the default value if there is a specific reason to do so.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:CollaborationInfo/eb:Service"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

ServiceAction Property (AS4Web Connector)

The action within a service that acts on the message.

Data Type

String

Default Value

"http://docs.oasis-open.org/ebxml-msg/as4/200902/action"

Remarks

This property defines the action within a service that acts upon a message. This should only be changed from the default value if there is a specific reason to do so.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:CollaborationInfo/eb:Action".

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

ServiceType Property (AS4Web Connector)

The type of service.

Data Type

String

Default Value

""

Remarks

This optionally specifies the type of the service. The semantics of this value should be agreed upon by both parties ahead of time. It may be used to tell the other party how to interpret the Service value.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:CollaborationInfo/eb:Service@type"

Note: This property is not available at design time in the receiver, but will be detected from the incoming AS4 message and made available as a message context attribute.

SignatureAlgorithm Property (AS4Web Connector)

Signature algorithm to be used in the message.

Data Type

String

Default Value

"sha256"

Remarks

Signature Algorithm can be set to indicate the preferred signing algorithm. Possible values are:

  • SHA1
  • MD5
  • SHA-256 (or SHA256) (default)
  • SHA-384 (or SHA384)
  • SHA-512 (or SHA512)
  • SHA-224 (or SHA224)
  • ECDSA-SHA1
  • ECDSA-SHA224
  • ECDSA-SHA256
  • ECDSA-SHA384
  • ECDSA-SHA512

The default value is "SHA-256".

SignerCert Property (AS4Web Connector)

The public signing certificate of the partner.

Data Type

Certificate

Remarks

This property specifies the public certificate of the partner that was used to sign the message. The connector will verify the signature with the public certificate specified here.

This property is used to set a Public Key Certificate.

Ordinarily, the system will attempt to locate the public key in trusted certificate stores in the system registry. If a match is found, the certificate is trusted, and the process proceeds without error. If the certificate is not trusted, the connector will report an error.

You may explicitly set a public key, either to accept a key that is not installed on the system, or to ensure that a specific key is presented. Public key certificates may be loaded from the machine registry or from file.

This property specifies the public certificate of the partner that was used to sign the message. The connector will verify the signature with the public certificate specified here.

This property is used to set a Public Key Certificate.

Ordinarily, the system will attempt to locate the public key in trusted certificate stores in the system registry. If a match is found, the certificate is trusted, and the process proceeds without error. If the certificate is not trusted, the connector will report an error.

You may explicitly set a public key, either to accept a key that is not installed on the system, or to ensure that a specific key is presented. Public key certificates may be loaded from the machine registry or from file.

SigningCert Property (AS4Web Connector)

The certificate used to sign the outgoing AS4 message.

Data Type

Certificate

Remarks

This property specifies a certificate with private key used to sign the outgoing request and receipts.

This field is used to set a Private Key Certificate.

Private key certificates may be loaded from the registry, from files in PKCS#12 format, or from a PEM file format.

SSLAcceptServerCert Property (AS4Web Connector)

For sending HTTPS requests, a server certificate to unconditionally accept.

Data Type

Certificate

Remarks

In the Send Connector, this property is used when communicating with trading partners via HTTPS to the URL specified in URL.

In the Receive Connector, this property is used when an asynchronous MDN is requested by your trading partner to the URL specified in MDNDeliveryOption.

When an HTTPS request is issued by the connector, a new secure connection is created with the trading partner. By default, the connector will reject self-signed certificates and any other server certificates not signed by a trusted Certificate Authority (CA).

This property is used to set a Public Key Certificate.

Ordinarily, the system will attempt to locate the public key in trusted certificate stores in the system registry. If a match is found, the certificate is trusted, and the process proceeds without error. If the certificate is not trusted, the connector will report an error.

You may explicitly set a public key, either to accept a key that is not installed on the system, or to ensure that a specific key is presented. Public key certificates may be loaded from the machine registry or from file.

Note: You may also set the Accept Any field to Yes without opening the certificate selection dialog to force the connector to unilaterally authenticate any server during the security handshake. It is strongly recommended that you use this only for testing purposes. Set the LogMode to Info to cause the connector to report the server's credentials to Location.

SSLCert Property (AS4Web Connector)

The certificate to use for client authentication during the SSL handshake.

Data Type

Certificate

Remarks

This property is used to assign a specific certificate for SSL client authentication.

This field is used to set a Private Key Certificate.

Private key certificates may be loaded from the registry, from files in PKCS#12 format, or from a PEM file format.

TempPath Property (AS4Web Connector)

A temporary local directory where data can be stored before the component processes it.

Data Type

String

Default Value

""

Remarks

This property indicates a temporary directory where the connector can store any data before the connector processes it. If TempPath is empty, the connector will receive all data to memory. If set, the connector will generate and write all inbound data to a temporary file in the specified directory.

Once the file is submitted, the connector will handle closing the file stream and deleting the temporary file. However, if the connector is shut down during a transfer some temporary files may be left in the directory. To ensure optimal performance, server administrators should check the directory regularly and remove old or extraneous files. Note: by default, this property is empty and the connector will use memory streams to store all inbound data before submitting it. It is recommended that you use a temporary directory when downloading large batches or batches containing large files to alleviate potential increased memory requirements.

This property is not available in the Sender.

Timeout Property (AS4Web Connector)

A timeout for the component.

Data Type

Integer

Default Value

60

Remarks

If the Timeout property is set to 0, all operations will run uninterrupted until successful completion, or an error condition is encountered.

If Timeout is set to a positive value, the connector will wait for the operation to complete before returning control.

If Timeout expires, and the operation is not yet complete, the connector fails with an error.

Please note that by default, all timeouts are inactivity timeouts, i.e. the timeout period is extended by Timeout seconds when data is successfully sent or received.

Optionally, the behavior of the connector may be changed to absolute timeouts, i.e. the connector will wait for a maximum of Timeout seconds since the beginning of the operation, without extending the timeout period during communications.

This behavior is controlled by the AbsoluteTimeout configuration setting.

The default value for the Timeout property is 60 (seconds).

TokenPassword Property (AS4Web Connector)

The password used in UsernameToken authentication.

Data Type

Password

Default Value

""

Remarks

This property specifies the password used in UsernameToken authentication.

This property is not available in the Sender.

TokenUser Property (AS4Web Connector)

The user used in UsernameToken authentication.

Data Type

String

Default Value

""

Remarks

This property specifies the user used in UsernameToken authentication. If this is specified UsernameToken authentication will be included in the request.

This property is not available in the Sender.

TradingPartner Property (AS4Web Connector)

The trading partner that will be communicating with this receive location.

Data Type

String

Default Value

""

Remarks

This is the Id of the trading partner that will be communicating with this instance of the AS4 connector.

This property is not available in the Sender.

AS4WebAttr Type

TBD.

Remarks

TBD.

Fields

EDIProperties
String

Default Value: ""

A collection of file properties.

This property holds file level properties. The properties are specified one per line. The syntax is a follows: PropertyName=PropertyValue For instance, the value below includes two properties. Prop1=Value1 Prop2=Value2

EDISchemaLocation
String

Default Value: ""

The EDISchemaLocation, EDISchemaNamespace, and EDISchemaVersion optionally define the schema that applies to this particular file. This may be used by the receiving party to properly interpret the file data.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PayloadInfo/eb:PartInfo/eb:Schema@location"

EDISchemaNamespace
String

Default Value: ""

The namespace of the schema. This field is optional. Refer to EDISchemaLocation for details.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PayloadInfo/eb:PartInfo/eb:Schema@namespace"

EDISchemaVersion
String

Default Value: ""

The version of the schema. This field is optional. Refer to EDISchemaLocation for details.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:PayloadInfo/eb:PartInfo/eb:Schema@namespace"

EDIType
String

Default Value: ""

The Content-Type of the EDI message

The Content-Type of the EDI message. Sample values are "application/edi-x12", "application/edifact" or "application/xml".

Output
System.IO.Stream

Default Value: ""

TBD.

ReceivedFileName
String

Default Value: ""

The name of the file received by the AS4 connector.

If a file name is included in the AS4 request's message headers, it will be written to this context property.

Note: this value is also placed in the File.ReceivedFileName and the FTP.ReceivedFileName context properties. This is to ensure compatibility with other connectors that poll those context properties to fill out macros such as %SourceFileName%.

Certificate Type

The digital certificate being used.

Remarks

This type describes the current digital certificate. The certificate may be a public or private key. The fields are used to identify or select certificates.

Fields

Store
String

Default Value: "MY"

The name of the certificate store for the client certificate.

The StoreType field specifies the type of the certificate store specified by Store. If the store is password protected, specify the password in StorePassword.

Store is used in conjunction with the Subject field in order to specify client certificates. If Store has a value, and Subject is set, a search for a certificate is initiated. Please refer to the Subject field for details.

Designations of certificate stores are platform-dependent.

The following are designations of the most common User and Machine certificate stores in Windows:

MYA certificate store holding personal certificates with their associated private keys.
CACertifying authority certificates.
ROOTRoot certificates.
SPCSoftware publisher certificates.

In Java, the certificate store normally is a file containing certificates and optional private keys.

When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).

If the provider is OpenSSL, the certificate store is a file containing a certificate and a private key. This property must be set to the name of the file.

StorePassword
String

Default Value: ""

If the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store.

StoreType
CertStoreTypes

Default Value: 0

The type of certificate store for this certificate.

The connector supports both public and private keys in a variety of formats. When the cstAuto value is used, the connector will automatically determine the type. This field can take one of the following values:

0 (cstUser - default)For Windows, this specifies that the certificate store is a certificate store owned by the current user.

Note: This store type is not available in Java.

1 (cstMachine)For Windows, this specifies that the certificate store is a machine store.

Note: This store type is not available in Java.

2 (cstPFXFile)The certificate store is the name of a PFX (PKCS#12) file containing certificates.
3 (cstPFXBlob)The certificate store is a string (binary or Base64-encoded) representing a certificate store in PFX (PKCS#12) format.
4 (cstJKSFile)The certificate store is the name of a Java Key Store (JKS) file containing certificates.

Note: This store type is only available in Java.

5 (cstJKSBlob)The certificate store is a string (binary or Base64-encoded) representing a certificate store in Java Key Store (JKS) format.

Note: this store type is only available in Java.

6 (cstPEMKeyFile)The certificate store is the name of a PEM-encoded file that contains a private key and an optional certificate.
7 (cstPEMKeyBlob)The certificate store is a string (binary or Base64-encoded) that contains a private key and an optional certificate.
8 (cstPublicKeyFile)The certificate store is the name of a file that contains a PEM- or DER-encoded public key certificate.
9 (cstPublicKeyBlob)The certificate store is a string (binary or Base64-encoded) that contains a PEM- or DER-encoded public key certificate.
10 (cstSSHPublicKeyBlob)The certificate store is a string (binary or Base64-encoded) that contains an SSH-style public key.
11 (cstP7BFile)The certificate store is the name of a PKCS#7 file containing certificates.
12 (cstP7BBlob)The certificate store is a string (binary) representing a certificate store in PKCS#7 format.
13 (cstSSHPublicKeyFile)The certificate store is the name of a file that contains an SSH-style public key.
14 (cstPPKFile)The certificate store is the name of a file that contains a PPK (PuTTY Private Key).
15 (cstPPKBlob)The certificate store is a string (binary) that contains a PPK (PuTTY Private Key).
16 (cstXMLFile)The certificate store is the name of a file that contains a certificate in XML format.
17 (cstXMLBlob)The certificate store is a string that contains a certificate in XML format.
18 (cstJWKFile)The certificate store is the name of a file that contains a JWK (JSON Web Key).
19 (cstJWKBlob)The certificate store is a string that contains a JWK (JSON Web Key).
21 (cstBCFKSFile)The certificate store is the name of a file that contains a BCFKS (Bouncy Castle FIPS Key Store).

Note: This store type is only available in Java and .NET.

22 (cstBCFKSBlob)The certificate store is a string (binary or Base64-encoded) representing a certificate store in BCFKS (Bouncy Castle FIPS Key Store) format.

Note: This store type is only available in Java and .NET.

23 (cstPKCS11)The certificate is present on a physical security key accessible via a PKCS#11 interface.

To use a security key, the necessary data must first be collected using the CERTMGR connector. The ListStoreCertificates method may be called after setting CertStoreType to cstPKCS11, CertStorePassword to the PIN, and CertStore to the full path of the PKCS#11 DLL. The certificate information returned in the CertList event's CertEncoded parameter may be saved for later use.

When using a certificate, pass the previously saved security key information as the Store and set StorePassword to the PIN.

Code Example. SSH Authentication with Security Key: certmgr.CertStoreType = CertStoreTypes.cstPKCS11; certmgr.OnCertList += (s, e) => { secKeyBlob = e.CertEncoded; }; certmgr.CertStore = @"C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll"; certmgr.CertStorePassword = "123456"; //PIN certmgr.ListStoreCertificates(); sftp.SSHCert = new Certificate(CertStoreTypes.cstPKCS11, secKeyBlob, "123456", "*"); sftp.SSHUser = "test"; sftp.SSHLogon("myhost", 22);

99 (cstAuto)The store type is automatically detected from the input data. This setting may be used with both public and private keys and can detect any of the supported formats automatically.

Subject
String

Default Value: ""

The subject of the certificate used for client authentication.

When this property is set, a search is performed in the current certificate store certificate with matching subject.

If an exact match is not found, the store is searched for subjects containing the value of the property.

When setting the property to a partial subject, CN= should be omitted. For example, the following code would find the certificate with subject CN=Test Certificate, OU=People, C=US

Example (Searching with partial subject)

Control.CertSubject = "Test"

If a match is not found, the property is set to an empty string, and no certificate is selected.

The special value "*" picks a random certificate in the certificate store.

If a matching certificate is found, Subject is set to the full subject of the matching certificate.

Thumbprint
String (read-only)

Default Value: ""

The thumbprint of the certificate.

This field is used to specify the thumbprint of the certificate. When there are multiple certificates in the store that have the same subject, the thumbprint will be used to distinguish between them.

Firewall Type

The firewall the component will connect through.

Remarks

When connecting through a firewall, this type is used to specify different properties of the firewall such as the firewall Host and the FirewallType.

Fields

AutoDetect
Boolean

Default Value: False

Tells the connector whether or not to automatically detect and use firewall system settings, if available.

FirewallType
FirewallTypes

Default Value: 0

Determines the type of firewall to connect through. The applicable values are the following:

fwNone (0)No firewall (default setting).
fwTunnel (1)Connect through a tunneling proxy. Port is set to 80.
fwSOCKS4 (2)Connect through a SOCKS4 Proxy. Port is set to 1080.
fwSOCKS5 (3)Connect through a SOCKS5 Proxy. Port is set to 1080.

Host
String

Default Value: ""

Name or IP address of firewall (optional). If a Host is given, requested connections will be authenticated through the specified firewall when connecting.

If the Host field is set to a Domain Name, a DNS request is initiated. Upon successful termination of the request, the Host field is set to the corresponding address. If the search is not successful, an error is returned.

Password
String

Default Value: ""

A password if authentication is to be used when connecting through the firewall. If Host is specified, the User and Password fields are used to connect and authenticate to the given firewall. If the authentication fails, a trappable error is fired.

Port
Integer

Default Value: 0

The TCP port for the firewall Host. See the description of the Host field for details.

Note that the Port is set automatically when FirewallType is set to a valid value. See the description of the FirewallType field for details.

User
String

Default Value: ""

A user name if authentication is to be used connecting through a firewall. If the Host is specified, the User and Password fields are used to connect and authenticate to the given Firewall. If the authentication fails, a trappable error is fired.

Proxy Type

The proxy the component will connect to.

Remarks

When connecting through a proxy, this type is used to specify different properties of the proxy such as the Server and the AuthScheme.

Fields

AuthScheme
ProxyAuthSchemes

Default Value: 0

Use the AuthScheme field to tell the connector which type of authorization to perform when connecting to the proxy. This is only used when the User and Password fields are set.

AuthScheme should be set to authNone (3) when no authentication is expected.

By default, AuthScheme is authBasic (0), and if the User and Password fields are set, the component will attempt basic authentication. If AuthScheme is set to authDigest (1), digest authentication will be attempted instead.

If AuthScheme is set to authProprietary (2), then the authorization token will not be generated by the connector. Look at the configuration file for the connector being used to find more information about manually setting this token.

If AuthScheme is set to authNtlm (4), NTLM authentication will be used. This option is only available in the SSL package.

For security reasons, setting this property will clear the values of User and Password.

AutoDetect
Boolean

Default Value: False

Tells the connector whether or not to automatically detect and use proxy system settings, if available.

Password
String

Default Value: ""

A password if authentication is to be used for the proxy.

If AuthScheme is set to Basic Authentication, the User and Password are Base64 encoded and the proxy authentication token will be generated in the form "Basic [encoded-user-password]".

If AuthScheme is set to Digest Authentication, the User and Password fields are used to respond to the Digest Authentication challenge from the server.

If AuthScheme is set to NTLM Authentication, the User and Password fields are used to authenticate through NTLM negotiation.

Port
Integer

Default Value: 80

The TCP port for the proxy Server (default 80). See the description of the Server field for details.

Server
String

Default Value: ""

If a proxy Server is given, then the HTTP request is sent to the proxy instead of the server otherwise specified.

If the Server field is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the Server field is set to the corresponding address. If the search is not successful, an error is returned.

SSL
ProxySSLTypes

Default Value: 0

Determines when to use SSL for the connection to the proxy. The applicable values are the following:

psAutomatic (0)Default setting. The connection to the Server is SSL-enabled for 'https' URL-s, and non SSL-enabled for other URL-s.
psAlways (1)The connection is always SSL-enabled.
psNever (2)The connection is not SSL-enabled.
psTunnel (3)The connection is through a tunneling (HTTP) proxy.

User
String

Default Value: ""

A user name, if authentication is to be used for the proxy.

If AuthScheme is set to Basic Authentication, the User and Password are Base64 encoded and the proxy authentication token will be generated in the form "Basic [encoded-user-password]".

If AuthScheme is set to Digest Authentication, the User and Password fields are used to respond to the Digest Authentication challenge from the server.

If AuthScheme is set to NTLM Authentication, the User and Password fields are used to authenticate through NTLM negotiation.

Config Settings (AS4Web Connector)

The connector accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the connector, access to these internal properties is provided through the Other property.

AS4Web Config Settings

AgreementRefPMode:   AgreementRef PMode of message.

This optional setting allows for the association of a message with a particular P-Mode. If specified it should be the PMode.ID parameter.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:CollaborationInfo/eb:AgreementRef/@pmode"

AgreementRefType:   The type of AgreementRef.

This optional setting indicates how parties should interpret the value of AgreementRef. The semantics of this value should be decided upon between the parties.

This value corresponds to the ebMS element "eb:Messaging/eb:UserMessage/eb:CollaborationInfo/eb:AgreementRef/@type"

AllowWarnings:   Whether warnings are interpreted as fatal errors.

When set to False (default) any ebMS level error returned by the other party will be considered an error and cause an exception. When set to True the severity of the ebMS error will be inspected. If the severity is "warning" it will not cause an exception. In this case Errors will still be populated with the error details.

AttachXMLFiles:   Whether to send XML files as attachments or within the SOAP body.

This setting specifies whether XML files are included as attachments or within the SOAP body.

This setting is only applicable when the first file specified in EDIData is of type "text/xml" or "application/xml". In addition this is only applicable when Profile is set to Standard.

If set to True (default), the file will be sent as an attachment. This allows the filename to be preserved and the file is sent as a separate MIME part. If set to False and the criteria above are met then the file will be sent within the SOAP body. In this case the filename cannot be preserved normally.

The default value is True.

CloseStreamAfterProcessing:   Whether to close the input or output stream after processing.

This setting specifies whether the input or output stream will be closed after processing. This may be set to False to leave the stream open for further operations. The default value is True and the stream will be by the connector.

CompressXMLPayloads:   Whether to compress XML data.

When CompressionFormat is set to GZIP all EDIData parts will be compressed. To exclude XML payloads with EDIType values of "text/xml" or "application/xml" from being compressed set this value to False. By default this is True and all attachments will be compressed.

Note: When Profile is set to Standard the first EDIData part will be included in the SOAP body if the EDIType is "text/xml" or "application/xml". In that case since the data is included in the SOAP body it will not be compressed. When Profile is set to ENTSOG all EDIData parts are compressed.

ContentTransferEncoding:   The content encoding of the payload data.

This setting can be used to specify the content encoding of the payload data of the AS4 message. This is set to binary (4) by default. Possible values for the this field are:

Base64 (2) Base64 encoding of binary data.
Binary (4) Binary data without any encoding.
DetectDuplicates:   Whether to detect duplicate messages when receiving.

Whether to detect duplicate messages. If set to True LogDirectory must be set. When a file is received the connector will store a file containing the MessageId of the received file. When additional files are received the connector will scan the LogDirectory to see if a file with the same MessageId has already been received. If a duplicate is detected an entry is added to the .log file and Log fires.

The default value depends on the Profile. For the Standard profile the default value is False. When Profile is set to ENTSOG this value is set to True.

EBPrefix:   Specifies the prefix to use for messaging.

This setting specified the prefix to use for messaging. The default value is "eb3" and will result in values such as: eb3:Messaging It may be desirable to set this to another value such as "eb" so client and server sides both use the same prefix.

EDIDataPartId[i]:   Specified the part Id at the given index.

This setting may be used to specify the value for each EDIData part that is present in the message. By default the connector will generate a unique value. For instance:

<eb3:PartInfo href="cid:_de48eece-d1d8-4823-8a63-d3a8d14dc1a8@nsoftware">
In some cases it may be desired or necessary to specify a user-defined value. For instance:
<eb3:PartInfo href="cid:mypart@myhost">
After adding the part to EDIData the Id may be specified by setting:
AS4Component.Config("EDIDataPartId[0]=mypart@myhost");
This setting is also populated with the parsed Ids after receiving a message.
EnableTokenReferenceTokenType:   Whether to include the TokenType attribute in a SecurityTokenReference element.

When this configuration setting is enabled, messages will include the TokenType attribute in any SecurityTokenReference elements. It will also add a namespace declaration for Web Services Security Version 1.1 (http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd). Note: This setting is not compatible with the X509 security token format.

EncryptionSecurityTokenFormat:   The format to use for the security token when encryption.

This setting specifies the security token format that is included in the message when encrypting. This setting should only be set if there is a specific reason to do so. This specifies the reference type in the SecurityTokenReference element applicable to the encrypted data. Possible values are:

0 (X509 - default) X509 data including the certificate's issuer name and issuer serial number is included in the X509Data element.
1 (Binary) A binary security token holds the base64 encoded contents of the public certificate and is referenced from within the Reference element.
2 (Subject Key Identifier) The X509 subject key identifier is included in the KeyIdentifier element.
3 (X509PKIPathv1) A binary security token holds the base64 encoded ordered list of X509 public certificates and is referenced from within the Reference element.

The default value is 0 (X509) and should not be changed unless there is a specific reason to do so.

Note: The default value when Profile is set to eDelivery is 1 (Binary).

FilenameProperty:   Defines a part property to hold the filename.

This setting specifies the PropertyName that will hold the name of the file. This may be used to preserve filenames. Both the client and server must agree on the name of the property that will be used to hold the filename.

This is helpful in the case where Profile is set to ebpfStandard and the first file being sent is of type "text/xml" or "application/xml". In that case the file content is included in the SOAP body and there is no standard mechanism for preserving the filename.

When set the connector will automatically populate the property when sending files and will read the filename from this property when receiving files.

By default this is not specified.

Note: The filenames will always be preserved within the MIME header attributes whenever possible regardless of whether this setting is specified.

ForceSigningCert:   Whether to force only the SigningCert to be used for signing.

When set to False the connector will first check SigningCert for a certificate to use for signing operations. If SigningCert is not specified it will use the certificate specified in Certificate.

If set to True (default) the connector will only attempt to use the certificate specified by SigningCert. If SigningCert is not specified signing will not be attempted.

FromId[i]:   The Id of the party specified by AS4From.

This setting sets the Id of the party specified by AS4From at the index specified here. This is only used when multiple Ids are set. See FromIdCount for more details.

FromIdCount:   The number of Ids for the party specified by AS4From.

Multiple Ids may be specified for the AS4From party. This setting defines the total number of Ids. This is used in conjunction with FromId and FromIdType. For instance: component.Config("FromIdCount=2"); component.Config("FromId[0]=id1"); component.Config("FromIdType[0]=mytype"); component.Config("FromId[1]=id2");

When receiving a message with multiple Ids, query these settings to read the values.

By default this value is unspecified and only a single Id is used as specified in the Id field of AS4From.

FromIdType[i]:   The Id type of the party specified by AS4From.

This setting sets the Id type of the party specified by AS4From at the index specified here. This is only used when multiple Ids are set. See FromIdCount for more details.

IdRight:   A custom Id for the right side of the MessageId.

This setting may be used to specify a custom value for the right side of the MessageId that is generated by the connector. By default the connector will automatically generate message Ids in the format: 2a1546bd-d623-4e7f-bb8d-ddecfb4de51c@nsoftware This setting provides a way to replace the "nsoftware" value after the "@" symbol with another value.

KeyAgreementMethod:   The agreement method used for KeyWrap encryption algorithms.

This setting specifies the agreement method used for KeyWrap encryption algorithms (KW-AES). The default is ECDH-ES, and other methods are not currently supported. Possible values are:

ValueAlgorithmNotes
DHhttp://www.w3.org/2009/xmlenc11#dhNot currently implemented.
DH-EShttp://www.w3.org/2009/xmlenc11#dh-esNot currently implemented.
ECDH-EShttp://www.w3.org/2009/xmlenc11#ECDH-ESDefault when Profile is ebpfBDEW.

KeyDerivationConcatKDFDigestMethod:   The digest method used for the ConcatKDF key derivation method.

This is the digest method used when the ConcatKDF key derivation method is selected. In most cases this should not be changed. Only change this value if there is a specific reason to do so. Possible values are:

  • SHA512
  • SHA384
  • SHA256 (Default)
  • SHA224
  • SHA1

KeyDerivationMethod:   The key derivation method used for KeyWrap encryption algorithms.

This setting specifies the derivation method used for KeyWrap encryption algorithms (KW-AES). Possible values are:

ValueAlgorithm
ConcatKDF (Default)http://www.w3.org/2009/xmlenc11#ConcatKDF
PBKDF2http://www.w3.org/2009/xmlenc11#pbkdf2

KeyEncryptionAlgorithm:   The algorithm used to encrypt the key.

This setting specifies the algorithm used to encrypt the key for this message. In most cases this should not be changed. Only change this value if there is a specific reason to do so. Possible values are:

ValueAlgorithmNotes
RSA-OAEP-XMLENC11http://www.w3.org/2009/xmlenc11#rsa-oaepThis is used in the default configuration. Additionally if RSA-OAEP is specified this will be automatically used instead if OAEPMGF1HashAlgorithm is set to any value except SHA1 or OAEPRSAHashAlgorithm is set to SHA384 or SHA512.
RSA-v1.5http://www.w3.org/2001/04/xmlenc#rsa-1_5There are no conditions for the use of this algorithm. If specified it will be used regardless of other settings.
RSA-OAEPhttp://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1pThis is used by default when OAEPMGF1HashAlgorithm is set to SHA1 and OAEPRSAHashAlgorithm is set to SHA1 or SHA256. This is only applicable under these conditions, it cannot override when RSA-OAEP-XMLENC11 is used based on the OAEPMGF1HashAlgorithm and OAEPRSAHashAlgorithm values.
KW-AES128http://www.w3.org/2001/04/xmlenc#kw-aes128This is used by default if Profile is set to ebpfBDEW.
KW-AES192http://www.w3.org/2001/04/xmlenc#kw-aes192
KW-AES256http://www.w3.org/2001/04/xmlenc#kw-aes256

LogLevel:   The level of information to log.

This setting specifies the level of detail that is logged to the Log event and to any log files on disk. Possible value are:

0 (Error) Only errors are logged.
1 (Info - default) Informational and errors are logged.
2 (Debug) All information is logged including debug info.
LogOptions:   The information to be written to log files.

When LogDirectory is set, several pieces of information are written to log files in the specified directory. Set LogOptions to one or more of the following values to control what information is written to file. When specifying multiple values, include them in the same string (i.e. "LogOptions=Incoming, Outgoing, Log"). The default value is All. Possible values are:

LogContains information about the steps taken during processing. Also see LogLevel.
IncomingContains the raw request/response that is received by the connector.
OutgoingContains the raw request/response that is sent by the connector.
IncomingMessageContains the incoming ebXML message.
OutgoingMessageContains the outgoing ebXML message.
All (default)All of the above
MessageType:   Indicates the type of message received.

This property may be used to determine what type of message was received in a request. Requests may be used for multiple functions. For instance a request may contain a pull request and a receipt. This setting may be used as a bitmask to determine which combination of types are present. To inspect the message perform a binary 'AND' with one or more of the following values:

1 Pull Request (Receive Files)
2 User Message (Send Files)
4 Receipt
8 Error Message
For instance: int requestType = Int32.Parse(AS4Server.Config("MessageType")); if((requestType & 1) != 0) //The request contains a pull request
NormalizeIssuerSubject:   Whether to normalize the certificate subject within the X509Data element.

If set to True (default) the connector will normalize the X509IssuerName element within the request to conform to RFC 2253. If set to False the connector will use a standard format used by other components within the toolkit, which may not be compatible with all other AS4 software.

The default value is True to maximize interoperability with other AS4 software.

OAEPMGF1HashAlgorithm:   The MGF1 hash algorithm used when encrypting a key.

When encryption is enabled, this algorithm specifies the MGF1 hash algorithm used for the encryption key by RSA OAEP. Possible values are:

  • "SHA1"
  • "SHA224"
  • "SHA256" (default)
  • "SHA384"
  • "SHA512"

Note: If Profile is set to ENTSOG the MGF1HashAlgorithm will be set to "SHA256" by default.

OAEPParams:   The hex encoded OAEP parameters to be used when encrypting a key.

This setting is optional and should only be specified if OAEP parameters need to be explicitly set. The value specified should be a hex string. By default this setting is unspecified.

OAEPRSAHashAlgorithm:   The RSA hash algorithm used when encrypting a key.

When encryption is enabled, this algorithm specifies the RSA hash algorithm used for the encryption key. This may differ from the hash algorithm used to sign the AS4 message content. Possible values are:

  • "SHA1"
  • "SHA224"
  • "SHA256" (default)
  • "SHA384"
  • "SHA512"
ReceiptURL:   The URL to which receipts are sent.

This property specifies the URL to which receipts are sent if different than URL. This property should only be set if receipts must be sent to an alternate URL.

This setting is only applicable to the Receive connector

ReferenceHashAlgorithm:   The hash algorithm used to has the data specified in the reference of a signature.

When signing the content being signed is referred to by a reference in the Signature element. This setting specifies the hash algorithm used when computing the reference digest. Possible values are:

  • "SHA1"
  • "SHA224"
  • "SHA256" (default)
  • "SHA384"
  • "SHA512"
RequireEncryption:   Whether encryption is required when processing received messages.

This setting may be set to True to require that received messages are encrypted. When True if a message is received that is not encrypted the connector will throw an exception. The default value is False.

RequireSignature:   Whether a signature is required when processing received messages.

This setting may be set to True to require that received messages are signed. When True if a message is received that is not signed the connector will throw an exception. The default value is False.

ResponseFile:   A file from which to read the response.

This setting specifies a file from which the response is read. This may be useful in cases where the response is not received directly by the connector. For instance it may be useful in debugging. If ResponseHeaders is not specified they will be read from file.

SignerCACert:   The CA certificates that issued the signer certificate.

This setting may be set prior to signature verification when receiving messages that are signed using a certificate specified in the message itself as a BinarySecurityToken.

If this setting is specified, the connector will verify the chain of the signer certificate against the CA list set in this setting. To specify one or more CA certificate prior to signature verification set this to the base64 encoded public certificate of each CA certificate. Each additional certificate can be added by prepending the data with a + character. If the value begins with a + the connector will add the following value to an internal store of CA certificates. For instance: //Add the first CA certificate as4.Config("SignerCACert=MIICFDCCAX2g..."); //Add another CA certificate (Note the leading '+') as4.Config("SignerCACert=+MIICHDCCAYW...");

If the chain validation fails during signature verification the connector throws an exception. If this setting is not specified no chain validation is performed.

SigningSecurityTokenFormat:   The format to use for the security token when signing.

This setting specifies the security token format that is included in the message when signing. This setting should only be set if there is a specific reason to do so. This specifies the reference type in the SecurityTokenReference element applicable to the signed data. Possible values are:

0 (X509 - default) X509 data including the certificate's issuer name and issuer serial number is included in the X509Data element.
1 (Binary) A binary security token holds the base64 encoded contents of the public certificate and is referenced from within the Reference element.
2 (Subject Key Identifier) The X509 subject key identifier is included in the KeyIdentifier element.
3 (X509PKIPathv1) A binary security token holds the base64 encoded ordered list of X509 public certificates and is referenced from within the Reference element.

The default value is 0 (X509) and should not be changed unless there is a specific reason to do so.

Note: The default value when Profile is set to eDelivery is 1 (Binary).

TempPath:   Where temporary files are optionally written.

When processing large files an excessive amount of memory may be used, leading to out-of-memory exceptions. To reduce the amount of memory used, partially encoded files can be written to a temporary directory. Set this to a folder on disk where temporary files may be written.

ToId[i]:   The Id of the party specified by AS4To.

This setting sets the Id of the party specified by AS4To at the index specified here. This is only used when multiple Ids are set. See ToIdCount for more details.

ToIdCount:   The number of Ids for the party specified by AS4To.

Multiple Ids may be specified for the AS4To party. This setting defines the total number of Ids. This is used in conjunction with ToId and ToIdType. For instance: component.Config("ToIdCount=2"); component.Config("ToId[0]=id1"); component.Config("ToIdType[0]=mytype"); component.Config("ToId[1]=id2");

When receiving a message with multiple Ids, query these settings to read the values.

By default this value is unspecified and only a single Id is used as specified in the Id field of AS4To.

ToIdType[i]:   The Id type of the party specified by AS4To.

This setting sets the Id type of the party specified by AS4To at the index specified here. This is only used when multiple Ids are set. See ToIdCount for more details.

TokenPasswordType:   The password type used in UsernameToken authentication.

This setting specifies the type of password specified when TokenUser and TokenPassword are set. TokenPassword should normally be set to the plaintext password that both the client and server know. The connector will automatically use SHA-1 to create a hash of the password when TokenPasswordType is set to Digest (default). The hashed password is sent in the request, along with a creation date and nonce. The server will validate these values when receiving the request. Possible values are:

  • 0 (Digest - default)
  • 1 (Text)

This setting is only applicable to the Receive connector

TransformReceipt:   Whether to canonicalize the received receipt.

When a receipt is received this setting controls whether the value in Content is transformed.

When set to True (default) the connector will perform canonicalize the receipt when it is received. This may be helpful if the value of Content is to be used in a later process where a valid XML document is required. When set to true (false by default), the component will transform the receipt content made available in the component using Exclusive XML Canonicalization.

If False the connector will not alter the received receipt. The value of Content will not itself be a well formed XML document.

UseTransformedXMLAttachment:   Whether to send the canonicalized XML.

By default, when an XML document is specified in the EDIData, it will be canonicalized (c14n) in order to calculate the hash value. When the XML attachment is transmitted, this canonicalized data is used by default (True). When set to False, the connector will transmit the original data instead.

SSL Config Settings

ReuseSSLSession:   Determines if the SSL session is reused.

If set to true, the connector will reuse the context if and only if the following criteria are met:

  • The target host name is the same.
  • The system cache entry has not expired (default timeout is 10 hours).
  • The application process that calls the function is the same.
  • The logon session is the same.
  • The instance of the connector is the same.

SSLCipherStrength:   The minimum cipher strength used for bulk encryption.

This minimum cipher strength largely dependent on the security modules installed on the system. If the cipher strength specified is not supported, an error will be returned when connections are initiated.

Please note that this setting contains the minimum cipher strength requested from the security library.

Use this setting with caution. Requesting a lower cipher strength than necessary could potentially cause serious security vulnerabilities in your application.

SSLEnabledCipherSuites:   The cipher suite to be used in an SSL negotiation.

The enabled cipher suites to be used in SSL negotiation.

By default, the enabled cipher suites will include all available ciphers ("*").

The special value "*" means that the connector will pick all of the supported cipher suites. If SSLEnabledCipherSuites is set to any other value, only the specified cipher suites will be considered.

Multiple cipher suites are separated by semicolons.

Example values when UseInternalSecurityAPI is False (default): // The "Other" property could contain ONE of the following lines: SSLEnabledCipherSuites=* SSLEnabledCipherSuites=CALG_AES_256 SSLEnabledCipherSuites=CALG_AES_256;CALG_3DES Possible values when UseInternalSecurityAPI is False (default) include:

  • CALG_3DES
  • CALG_3DES_112
  • CALG_AES
  • CALG_AES_128
  • CALG_AES_192
  • CALG_AES_256
  • CALG_AGREEDKEY_ANY
  • CALG_CYLINK_MEK
  • CALG_DES
  • CALG_DESX
  • CALG_DH_EPHEM
  • CALG_DH_SF
  • CALG_DSS_SIGN
  • CALG_ECDH
  • CALG_ECDH_EPHEM
  • CALG_ECDSA
  • CALG_ECMQV
  • CALG_HASH_REPLACE_OWF
  • CALG_HUGHES_MD5
  • CALG_HMAC
  • CALG_KEA_KEYX
  • CALG_MAC
  • CALG_MD2
  • CALG_MD4
  • CALG_MD5
  • CALG_NO_SIGN
  • CALG_OID_INFO_CNG_ONLY
  • CALG_OID_INFO_PARAMETERS
  • CALG_PCT1_MASTER
  • CALG_RC2
  • CALG_RC4
  • CALG_RC5
  • CALG_RSA_KEYX
  • CALG_RSA_SIGN
  • CALG_SCHANNEL_ENC_KEY
  • CALG_SCHANNEL_MAC_KEY
  • CALG_SCHANNEL_MASTER_HASH
  • CALG_SEAL
  • CALG_SHA
  • CALG_SHA1
  • CALG_SHA_256
  • CALG_SHA_384
  • CALG_SHA_512
  • CALG_SKIPJACK
  • CALG_SSL2_MASTER
  • CALG_SSL3_MASTER
  • CALG_SSL3_SHAMD5
  • CALG_TEK
  • CALG_TLS1_MASTER
  • CALG_TLS1PRF
Example values when UseInternalSecurityAPI is True: // The "Other" property could contain ONE of the following lines: SSLEnabledCipherSuites=* SSLEnabledCipherSuites=TLS_DHE_DSS_WITH_AES_128_CBC_SHA SSLEnabledCipherSuites=TLS_DHE_DSS_WITH_AES_128_CBC_SHA;TLS_DH_ANON_WITH_AES_128_CBC_SHA Possible values when UseInternalSecurityAPI is True include:
  • TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
  • TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
  • TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
  • TLS_DHE_DSS_WITH_AES_128_CBC_SHA
  • TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
  • TLS_DHE_DSS_WITH_AES_256_CBC_SHA
  • TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
  • TLS_DHE_DSS_WITH_DES_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
  • TLS_DHE_RSA_WITH_DES_CBC_SHA
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_DES_CBC_SHA
  • TLS_RSA_WITH_RC4_128_MD5
  • TLS_RSA_WITH_RC4_128_SHA

If SSLEnabledProtocols is configured to use TLS 1.3 the following values are supported:

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384

SSLEnabledCipherSuites is used together with SSLCipherStrength.

SSLEnabledProtocols:   Used to enable/disable the supported security protocols.

Used to enable/disable the supported security protocols.

Not all supported protocols are enabled by default (the value of this setting is 4032). If you want more granular control over the enabled protocols, you can set this property to the binary 'OR' of one or more of the following values:

TLS1.312288 (Hex 3000) (Experimental)
TLS1.23072 (Hex C00) (Default)
TLS1.1768 (Hex 300) (Default)
TLS1 192 (Hex C0) (Default)
SSL3 48 (Hex 30)
SSL2 12 (Hex 0C)

Note: TLS 1.1 and TLS1.2 support are only available starting with Windows 7.

Note: Enabling TLS 1.3 will automatically set UseInternalSecurityAPI to True.

SSLIncludeCertChain:   Whether the entire certificate chain is included in the SSLServerAuthentication event.

This setting specifies whether the transport log contains the full certificate chain. By default this value is False and only the leaf certificate will be present.

If set to True all certificates returned by the server will be present in the transport log. This includes the leaf certificate, any intermediate certificate, and the root certificate.

Note: When UseInternalSecurityAPI is set to True this value is automatically set to True. This is needed for proper validation when using the internal provider.

SSLSecurityFlags:   Flags that control certificate verification.

The following flags are defined (specified in hexadecimal notation). They can be or-ed together to exclude multiple conditions:

0x00000001Ignore time validity status of certificate.
0x00000002Ignore time validity status of CTL.
0x00000004Ignore non-nested certificate times.
0x00000010Allow unknown Certificate Authority.
0x00000020Ignore wrong certificate usage.
0x00000100Ignore unknown certificate revocation status.
0x00000200Ignore unknown CTL signer revocation status.
0x00000400Ignore unknown Certificate Authority revocation status.
0x00000800Ignore unknown Root revocation status.
0x00008000Allow test Root certificate.
0x00004000Trust test Root certificate.
0x80000000Ignore non-matching CN (certificate CN not-matching server name).

TLS12SignatureAlgorithms:   Defines the allowed TLS 1.2 signature algorithms when UseInternalSecurityAPI is True.

This setting specifies the allowed server certificate signature algorithms when UseInternalSecurityAPI is True and SSLEnabledProtocols is set to allow TLS 1.2.

When specified the connector will verify that the server certificate signature algorithm is among the values specified in this setting. If the server certificate signature algorithm is unsupported the connector will fail with an error.

The format of this value is a comma separated list of hash-signature combinations. For instance: // The "Other" could contain ALL of these lines: UseInternalSecurityAPI=true SSLEnabledProtocols=3072 TLS12SignatureAlgorithms=sha1-rsa,sha1-dsa,sha256-rsa,sha256-dsa The default value for this setting is "sha1-rsa,sha1-dsa,sha224-rsa,sha224-dsa,sha256-rsa,sha256-dsa,sha384-rsa,sha384-dsa,sha512-rsa,sha512-dsa".

In order to not restrict the server's certificate signature algorithm, specify an empty string as the value for this setting, which will cause the signature_algorithms TLS 1.2 extension to not be sent.

TLS12SupportedGroups:   The supported groups for ECC.

This setting specifies a comma separated list of named groups used in TLS 1.2 for ECC.

The default value is ecdhe_secp256r1,ecdhe_secp384r1,ecdhe_secp521r1.

When using TLS 1.2 and UseInternalSecurityAPI is set to True, the values refer to the supported groups for ECC. The following values are supported:

  • "ecdhe_secp256r1" (default)
  • "ecdhe_secp384r1" (default)
  • "ecdhe_secp521r1" (default)

TLS13KeyShareGroups:   The groups for which to pregenerate key shares.

This setting specifies a comma separated list of named groups used in TLS 1.3 for key exchange. The groups specified here will have key share data pregenerated locally before establishing a connection. This can prevent an additional round trip during the handshake if the group is supported by the server.

The default value is set to balance common supported groups and the computational resources required to generate key shares. As a result only some groups are included by default in this setting.

Note: All supported groups can always be used during the handshake even if not listed here, but if a group is used which is not present in this list it will incur an additional round trip and time to generate the key share for that group.

In most cases this setting does not need to be modified. This should only be modified if there is a specific reason to do so.

The default value is ecdhe_x25519,ecdhe_secp256r1,ecdhe_secp384r1,ffdhe_2048,ffdhe_3072

The values are ordered from most preferred to least preferred. The following values are supported:

  • "ecdhe_x25519" (default)
  • "ecdhe_x448"
  • "ecdhe_secp256r1" (default)
  • "ecdhe_secp384r1" (default)
  • "ecdhe_secp521r1"
  • "ffdhe_2048" (default)
  • "ffdhe_3072" (default)
  • "ffdhe_4096"
  • "ffdhe_6144"
  • "ffdhe_8192"

TLS13SignatureAlgorithms:   The allowed certificate signature algorithms.

This setting holds a comma separated list of allowed signature algorithms. Possible values are:

  • "rsa_pkcs1_sha256" (default)
  • "rsa_pkcs1_sha384" (default)
  • "rsa_pkcs1_sha512" (default)
The default value is rsa_pkcs1_sha256,rsa_pkcs1_sha384,rsa_pkcs1_sha512. This setting is only applicable when SSLEnabledProtocols includes TLS 1.3.
TLS13SupportedGroups:   The supported groups for (EC)DHE key exchange.

This setting specifies a comma separated list of named groups used in TLS 1.3 for key exchange. This setting should only be modified if there is a specific reason to do so.

The default value is ecdhe_x25519,ecdhe_x448,ecdhe_secp256r1,ecdhe_secp384r1,ecdhe_secp521r1,ffdhe_2048,ffdhe_3072,ffdhe_4096,ffdhe_6144,ffdhe_8192

The values are ordered from most preferred to least preferred. The following values are supported:

  • "ecdhe_x25519" (default)
  • "ecdhe_x448" (default)
  • "ecdhe_secp256r1" (default)
  • "ecdhe_secp384r1" (default)
  • "ecdhe_secp521r1" (default)
  • "ffdhe_2048" (default)
  • "ffdhe_3072" (default)
  • "ffdhe_4096" (default)
  • "ffdhe_6144" (default)
  • "ffdhe_8192" (default)

General Config Settings

AbsoluteTimeout:   Determines whether timeouts are inactivity timeouts or absolute timeouts.

If AbsoluteTimeout is set to True, any method which does not complete within Timeout seconds will be aborted. By default, AbsoluteTimeout is False, and the timeout is an inactivity timeout.

LocalHost:   The name of the local host or user-assigned IP interface through which connections are initiated or accepted.

The LocalHost configuration contains the name of the local host as obtained by the Gethostname() system call, or if the user has assigned an IP address, the value of that address.

In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the connector initiate connections (or accept in the case of server connectors) only through that interface.

If the connector is connected, the LocalHost configuration shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multihomed hosts (machines with more than one IP interface).

TcpNoDelay:   Whether or not to delay when sending packets.

When true, the socket will send all data that is ready to send at once. When false, the socket will send smaller buffered packets of data at small intervals. This is known as the Nagle algorithm.

By default, this config is set to false.

UseInternalSecurityAPI:   Whether or not to use the system security libraries or an internal implementation.

When set to False, the connector will use the system security libraries by default to perform cryptographic functions where applicable.

Setting this configuration setting to True tells the connector to use the internal implementation instead of using the system security libraries.

This setting is set to False by default on all platforms.