3 EFTLink Configurable Properties

This chapter describes the EFTLink properties:

Configuration Settings

The full set of configuration properties are defined and commented in EftlinkConfig.properties.

Key Settings

These settings must be set for all POS.

Table 3-1 Key Settings

Setting Description Example

EPSCore0

Name of EPS subsystem.

Plugin cores must be specified by their full package name, and the package must also be added to the execution class path.

EPSCore0 is mandatory.

Note: EPSCore0 is set by installcore.bat / installcore.sh.

EPSCore0 = manito.eft.pointus.PointUSCore

DisplayLanguage

Language for display texts. For whichever country code is set, there must be a matching LangXX.properties file.

A hierarchy is implied for example EN_US is taken as an extension of EN.

DisplayLanguage = EN

LanguageFolder

The location of the Lang<CC>_<Core>.properties files exist. Support relative path. Not permitted to traverse outside of installation folder.

./lang

Secondary Settings

These settings are normally correct at their default values, but can be overridden if necessary:

Table 3-2 Secondary Settings

Setting Description Default Example

NumEPSCores

The number of active EPS cores list specified by EPSCore<n>

1

NumEPSCores = 2

ServerChannel0

Socket that EFTLink listens on for incoming Channel 0 requests from POS.

10100

ServerChannel0 = 10100

ServerChannel1

Socket that EFTLink uses to send Channel 1 Device Requests to POS.

10101

ServerChannel1 = 10101

Channel1IP

IP that EFTLink uses to send Channel 1 Device Requests to POS.

localhost

Channel1IP = IP ADDRESS

TLSEnabled

Whether to use Transport Layer Security (TLS) between the core and the framework.

true

TLSEnabled = true

TLSExpiry

Specify whether to enforce expiry of TLS certificates, based on expiry date.

Note. Self-certified certificates created by the "CreateKeys" script files will expire after a maximum of 750 days.

true

TLSExpiry = false

TLSExpiryWarningLogDays

Specify the number of days prior to TLS certificate expiry that clear warnings will be included in log files during communication sessions.

90

TLSExpiryWarningLogDays = 180

TLSExpiryWarningMessageDays

Specify the number of days that clear warnings presented to the operator at start of day prior to TLS certificate expiry.

90

TLSExpiryWarningMessageDays = 90

OPIServerDelegate

Allows the OPIServer operation to be delegated to an alternate class

OPIServerDelegate = manito.eft.tlog.TLogOPIServer

InvalidCorePromptTimeout

Timeout in seconds for displaying the TXT_INVALID_CORE message to the operator.

10

InvalidCorePromptTimeout = 5

SingleSocket

Whether EFTLink is to be accessed via a single common server socket, with messages routed by POS ID

Note: In this mode, channel 1 will run on the same client socket as channel 0.

false

SingleSocket = true

LineDisplayEnabled

If set to false, all Sale State Notifications will be ignored and not passed on to any active EPSCore.

true

LineDisplayEnabled = false

DelegateLineDisplay

If set to true a delegated list will be used to control which core receives Sale State Notification requests. Applicable only when 'DelegateLineDisplay' is set to true.

false

DelegateLineDisplay = true

LineDisplayDelegateList

A comma separated list of all cores that are to receive Sale State Notification requests.

LineDisplayDelegateList = 0,1,2

EwalletCore

A particular core can be designated to handle EWallet operations.

0

EwalletCore = 1

GiftCardCore

A particular core can be designated to handle Gift Card operations.

0

GiftCardCore = 1

CustomFormCore

A particular core can be designated to handle custom forms operations.

0

CustomFormCore = 1

ReferralCore

A particular core can be designated to handle Referrals.

0

ReferralCore = 1

SelfReferralEnabled

Whether to allow a core to handle its own referral.

false

SelfReferralEnabled = true

NumServers

Determines how many instances of the OPIServer to enable in server mode. In normal stand alone or non-server mode, set this to 0.

0

NumServers = 1

PEDPoolEnabled

Whether to enable PED pooling in server mode.

The NumServers should be set to a number greater than zero. In PED pooling mode, the PEDs can be shared among POS clients.

false

PEDPoolEnabled = true

PEDPoolOneCatchAllChannel0

Whether to open just one port for channel zero in PED pooling mode.

false

PEDPoolOneCatchAllChannel0 = true

Server<n>.description

The list of server or PED identifier. This is mandatory when in PED pooling.

*n is a positive number starting at 1 and up to NumServers above.

c

NumClients

Determines how many potential clients when using PED pooling. This is mandatory in PED pooling.

2

NumClients = 1

posN.description

The list of POS identifier where N is a positive number starting at 1.

This is mandatory in PED pooling.

pos1.description = POS 1

posN.subpool

Restrict the list of server or PED for a particular POS where N is the workstation ID. A default association can also be specified by prefixing the server ID with '*'.

null

pos1.subpool = *EFT 1, EFT 2 pos2.subpool = EFT 1, EFT 2

In the above example, register 1 by default will use EFT 1 if it's free. Both EFT 1 and EFT 2 servers is available for both registers (1 and 2).

ProtocolsWhiteList

Restricts the protocols which are permissible in the connection between POS and EFTLink Server. Default only allows for TLS 1.2 security.

SSLv2Hello,TLSv1.2

ProtocolsWhiteList=SSLv2Hello, TLSv1.2

CipherWhiteList

Restricts the ciphers which are permissible in the connection between POS and EFTLink Server. The whitelist only includes ciphers which are approved under Oracle Approved Technologies: Security Protocols.

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,

TLS_AES_128_GCM_SHA256,

TLS_CHACHA20_POLY1305_SHA256,

TLS_AES_128_CCM_SHA256,

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CCM,

TLS_ECDHE_ECDSA_WITH_AES_128_CCM,

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,

TLS_DHE_RSA_WITH_AES_256_CCM,

TLS_DHE_RSA_WITH_AES_128_CCM,

TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,

TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,

TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256

CipherWhiteList =

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,

TLS_AES_128_GCM_SHA256,

TLS_AES_256_GCM_SHA384,

TLS_CHACHA20_POLY1305_SHA256,

TLS_AES_128_CCM_SHA256,

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,

TLS_ECDHE_ECDSA_WITH_AES_256_CCM,

TLS_ECDHE_ECDSA_WITH_AES_128_CCM,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,

TLS_DHE_RSA_WITH_AES_256_CCM,TLS_DHE_RSA_WITH_AES_128_CCM,

TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,

TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,

TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256

CipherBlackList

CipherBlackList

SSL_.*,

TLS_EMPTY_.*,

.*_SHA,

.*_3DES_.*,

.*_DES_.*,

.*_WITH_NULL_.*,

.*_anon_.*,

.*EXPORT.*,

.*LOW.*,

.*MD5.*,

.*DES.*,

.*RC2.*,

.*RC4.*,

.*PSK.*

TLS_DH_.*

CipherBlackList=

SSL_.*,

TLS_EMPTY_.*,

.*_SHA,

.*_3DES_.*,

.*_DES_.*,

.*_WITH_NULL_.*,

.*_anon_.*,

.*EXPORT.*,

.*LOW.*,

.*MD5.*,

.*DES.*,

.*RC2.*,

.*RC4.*,

.*PSK.*,

TLS_DH_.*

PosType

POS type that EftLink is connected to.

This can be set explicitly (for example, Lucas, Retail-J, Oscar) or set to "Auto" for the POS type to be deduced from the OPI

Auto

PosType = Auto

Dynamic Configuration

Static/Dynamic Configuration

EFTLink can be configured to pick up its configuration dynamically from POS messages. A default setting is implied by the POS type setting, but this can be overridden.

false

DynamicConfiguration = false

PosIfsfCompliance

The level of IFSF compliance for the POS interface - IFSF or LUCAS.

Lucas

PosIfsfCompliance = Lucas

Decimal Places

Number of decimal places to show.

2

DecimalPlaces = 2

DelegatedDisplay

Whether to use a display server delegate class to control pop-up dialogs directly from EFTLink instead of via Channel1.

false

DelegatedDisplay = true

DelegatedDisplayHandler

Class implementing pop-up dialogs.

manito.deviceproxy.DeviceProxy

DelegatedDisplayHandler = manito.deviceproxy.DeviceProxy

DelegatedDisplayOverride

Optional override to revert some display operations back to the POS.

0

DelegatedDisplayOverride = 0

ShowPrintingDialog

Whether to precede each print request with a TXT_PRINTING (for example, "Printing. Please Wait") dialog.

false

ShowPrintingDialog = false

ForcedInput

Whether to request forced input (no cancellation) on input requests to the POS, if not explicitly set by the core.

false

ForcedInput = true

DeviceEvents

Whether device events such as CardInserted are supported by the POS. Default false.

false

DeviceEvents = false

PrinterPoolEnabled

Whether to run a pool of printers shared between POSs. (many-many link)

Printer pool is accessed via the "master" channel 0. Channel 1 will run on the same client socket as channel 0.

false

PrinterPoolEnabled = true

PaymentWithLoyalty

Whether combined payment with loyalty is supported.

Combined payment with loyalty is automatically disabled if a part payment is detected.

true

PaymentWithLoyalty = false

ValidateItemValues

Whether the basket content should be validated to ensure that the sum of the items matches the overall value. Default true.

true

ValidateItemValues = true

PrinterImpliedOnline

Whether the printer can be assumed to be online and available, that is, if the POS can only send requests when the printer is online and with paper, there is no need to do an explicit check.

false

PrinterImpliedOnline = false

ClearDisplayAfterTimeout

Whether to clear the display by sending an empty prompt to the POS after a timeout.

false

ClearDisplayAfterTimeout = false

CURRENCY_< currency symbol>

Currency symbol conversion list.

CURRENCY_156 = GBPCURRENCY_163 = GBPCURRENCY_164 = EURCURRENCY_213 = EUR

DespoolOnLogon

Spooled reports are automatically printed on next logon.

false

DespoolOnLogon = true

DespoolOnMaintenance

Spooled reports are automatically printed on next maintenance/administration use.

true

DespoolOnMaintenance = false

DespoolOnReconciliation

Spooled reports are automatically printed at next shift close.

true

DespoolOnReconciliation = false

DistributedDayend

Whether EFTLink is to relay POS reconciliation message on to other instances of EFTLink.

# If set true, EFTLink uses the same day end client list as for manito.eft.opi.server.Dayend

false

DistributedDayend = false

NumDayendClients

List of client systems to which a reconciliation message should be sent by the manito.eft.opi.server.Dayend operation.

Number of clients to be processed.

0

NumDayendClients = 1

DayendClient<n>IP

IP of remote system where EFTLink is running.

DayendClient0IP = xxx.x.x.x

DayendClient<n>Channel0

Port which EFTLink is running.

DayendClient0Channel = 10100DayendClient1Channel0= 10100DayendClient2Channel0= 10100DayendClient3Channel0= 10100DayendClient4Channel0= 10100

DayendClient<n>Batch

Batch file to be run locally instead of sending message.

DayendClient0Batch = dayend.bat

DayendClient<n>Core

Specific individual core to send the request to.

DayendClient0Core = EftDevice

AllowMapMachineNameToSystemAccount

Allow the application to correctly secure access to data folders when running under the Windows Local System Account.

It is strongly recommended that the application is not configured to run using the Windows Local System account, instead use the Windows Local Service account when use of a local Windows machine account is desired.

Note that the Windows Network Service account should not be used.

false

AllowMapMachineNameToSystemAccount = false

https.proxyHost

Sets the https proxy host.

https.proxyHost=adc-proxy.example.com

https.proxyPort

Sets the https proxy port.

https.proxyPort=80

http.proxyHost

Sets the http proxy host.

http.proxyHost=adc-proxy.example.com

http.proxyPort

Sets the http proxy port.

http.proxyPort=80

ImagePathWhitelist

Comma delimited list of permissible paths for image files used in device request XML.

For example, c:/Images,c:/eftfolder/resources/images

'Any' or a blank can be used but having no entry serves the same purpose.

ImagePathWhitelist = Any

DisplayListOfPEDForFailure

In PED pooling mode, this determines if Eftlink displays the list of PEDs when the request failed or declined using the default PED.

This is to give the user an option to select another PED in the next request.

false

DisplayListOfPEDForFailure = false

CardRangeFile

The name and location of the range xml file.

Defaults to cardrange.xml file located within the root of the eftlink installation directory

./rangefile/cardrange.xml

SystemInformationLoggingEnabled 

Enable logging of system information at startup

True

SystemInformationLoggingEnabled = true

communications.keystore.iterations

Specify number of iterations. Valid range 10000 to 100000

10000

communications.keystore.iterations = 10000

communications.keystore.hashbytesize

Specify hash byte size. Valid values 256, 384, 512

384

communications.keystore.hashbytesize = 384

communications.keystore.digest

Specify digest Valid values SHA-256, SHA-384, SHA-512

SHA-512

communications.keystore.digest = SHA-512

communications.keystore.secretkeyspec

Specify keyspec, currently only AES supported.

AES

communications.keystore.secretkeyspec = AES

communications.keystore.factoryinstance

Specify factory, currently only PBKDF2WithHmacSHA512 supported.

PBKDF2WithHmacSHA512

communications.keystore.factoryinstance = PBKDF2WithHmacSHA512

communications.keystore.keystoretype

Specify Keystore type. Currently only JKS is supported.

JKS

communications.keystore.keystoretype = JKS

ContentMaskList

Comma delimited list of XML fields to be masked on log.

ContentMaskList= StoreName, StoreAddress1

OriginalPSPNamesToBypassPSPChecking

Comma delimited list of EPSCore names to skip for checking that takes place on follow on transaction (Voids and Referenced Refunds).

OriginalPSPNamesToBypassPSPChecking= Simulated, oracle.eftlink.opiretail.OPIRetailCore