In this section:

Introduction

The SMTP Listener is a custom message listener extension for Parasoft Virtualize. It stands up a temporary SMTP server that notifies Virtualize on a per-message basis allowing users to accept or reject, with a custom rejection message, the incoming message and perform validations and post-processing as needed.

Installation

This tool can be installed from the UI or the command line.

Installing from the UI

  1. Go to Parasoft > Preferences and click System Properties.
  2. Click Add JARs and choose com.virtualize.listener.smtp-<VERSION>.jar.
  3. Click Apply.
  4. Restart Virtualize.

Installing from the Command Line

Add the com.parasoft.virtualize.listener.smtp-<VERSION>.jar file to the system.properties.classpath property in your settings properties file. For example:

system.properties.classpath=<PATH_TO_JAR>/com.parasoft.virtualize.listener.smtp-1.1.0.jar

Usage

You can select and configure the listener in the Virtual Asset configuration panel.

  1. In the Virtualize Server view, choose the virtual asset you want to configure to use with the custom message listener.
  2. Choose Transports> Custom in the Virtual Asset Deployment Settings. If multiple listeners are installed, choose SMTP Listener from the Select Implementation menu.
  3. Configure the connection and security settings (see Configuration).
     
  4. Save your changes.

Configuration

A Literal Message Responder with an empty payload should be configured for the SMTP listener to accept incoming messages.

Listener settings are described below.

Connection Settings

Host Name

Defines the hostname for the SMTP server. If empty, the system default hostname will be used.

PortDefines the port for the SMTP server. If empty, the listener will not start.

Security Settings

User Properties File

Specifies the absolute path to a properties file used to define username and password combinations. The passwords are stored in plain text. The properties file should be configured in the following format:

<username>=<password>

If this field is left empty, user authentication will be disabled.

Enable Transport Layer Security

Enables/disables transport layer security. If set to true, all connections to the server will be encrypted. Enabling TLS requires a properly configured Key Store and Trust Store. The default is false.

Key Store File

Specifies the absolute path to a keystore file. The keystore file must be in a standard format (for example, JKS, PKCS12, and so on). If TLS is enabled and no value is defined, the JVM system property javax.net.ssl.keyStore will be used.

TLS must be enabled for this property to have any effect.

Key Store Type

Defines the type of keystore file supplied in the Key Store File setting. If TLS is enabled and no value is defined, the JVM system property javax.net.ssl.keyStoreType will be used.

TLS must be enabled for this property to have any effect.

Key Store Password

Defines the password for the keystore supplied in the Key Store File setting. If TLS is enabled and no value is defined, the JVM system property javax.net.ssl.keyStorePassword will be used.

TLS must be enabled for this property to have any effect.

Enable Client Authentication

Enables/disables client authentication when TLS is enabled. If set to true, all connections will require the server to authenticate the clients' certificate. The Trust Store File must be properly configured with the client certificate as a “Trusted” certificate. The default is false.

TLS must be enabled for this property to have any effect.

Trust Store File

Specifies the absolute path to the keystore file used for verifying the authenticity (“trust”) of client certificates. The keystore file must be in a standard format (for example, JKS, PKCS12, and so on). If TLS is enabled and no value is defined, the JVM system property javax.net.ssl.trustStore will be used.

TLS must be enabled for this property to have any effect.

Trust Store Type

Defines the type of keystore file supplied in the Trust Store File setting. If TLS is enabled and no value is defined, the JVM system property javax.net.ssl.trustStoreType will be used.

TLS must be enabled for this property to have any effect.

Trust Store Password

Defines the password for the keystore supplied in the Trust Store File setting. If TLS is enabled and no value is defined, the JVM system property javax.net.ssl.trustStorePassword will be used.

TLS must be enabled for this property to have any effect.

Change Log

1.2.1

  • Version adjusted
  • The listener will no longer attempt to start when not configured with a port

1.0

  • Initial release


  • No labels