CME secure logon provides an ability to logon using SHA256 digital signature technique. This logon feature has been introduced by CME and provides highest security.
It needs to obtain security keys file from CME in order to use it. Once it is available, FIX Antenna can be configured to use secure logon for connecting to CME.
The session that connects using CME secure feature may be created in the code:
SessionParameters details = new SessionParameters(); details.setFixVersion(FIXVersion.FIX42); details.setHost("localhost"); details.setHeartbeatInterval(30); details.setPort(3000); details.setSenderCompId("senderId"); details.setTargetCompId("targetId"); details.setSenderSubId("senderSubId"); details.setTargetSubId("targetSubId"); details.setSenderLocationId("senderLocationId"); //the following three parameters are required for the feature. details.getConfiguration().setProperty(Configuration.INCLUDE_LAST_PROCESSED, "YES"); details.getConfiguration().setProperty(Configuration.CME_SECURE_KEYS_FILE, "cmeKeys.txt"); //Defines name of keys file. It should be located in classpath, root directory of running java application or home directory. details.getConfiguration().setProperty(Configuration.LOGON_CUSTOMIZATION_STRATEGY, Configuration.CME_SECURE_LOGON_STRATEGY); final FIXSession session = details.createNewFIXSession(); ... session.connect();
It can also be created using properties:
sessionIDs=client1 sessions.default.host=69.50.112.139 sessions.default.port=24920 sessions.default.fixVersion=FIX.4.2 sessions.default.heartbeatInterval=30 sessions.default.validation=false sessions.default.storageFactory=com.epam.fixengine.storage.InMemoryStorageFactory sessions.default.cmeSecureKeysFile=cmeKeys.txt sessions.default.logonCustomizationStrategy=com.epam.fixengine.session.impl.CmeSecureLogonStrategy sessions.default.includeLastProcessed=true sessions.client1.senderCompID=U89004N sessions.client1.targetCompID=CME sessions.client1.targetSubID=G sessions.client1.senderSubID=0J4L sessions.client1.senderLocationID=US
and applied using the following code:
SessionParameters details = SessionParametersBuilder.buildSessionParameters("initiators.properties", "client1"); // create session we intend to work with final FIXSession session = details.createInitiatorSession(); ... session.connect();
Note: tags SenderSubID, TargetSubID, SenderLocationID are required for the feature.
Available from: 2.19.0