Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 4 Current »

When the FIX servers are on the DMZ and not on the same domain as the OMS servers new username/password services must be added.

On the KODIAK Oms Server these configurations must be in place:

KodiakOrderEntryServer/Config/ServiceConfig/
CustomServices.config

<object id="InstrumentServiceBasic" type="Kodi.Kodiak.Services.InstrumentService, Kodi.Kodiak.BasicData" singleton="false" scope="session">
    <property name="InstrumentRepository" ref="InstrumentRepository"/>
    <property name="ExchangeRepository" ref="ExchangeRepository"/>
    <property name="ExchangeMembersRepository" ref="ExchangeMembersRepository"/>
    <property name="ExchangeTradersRepository" ref="ExchangeTradersRepository"/>
    <property name="TickSizeRepository" ref="TickSizeRepository"/>
    <property name="BrokerRepository" ref="BrokerRepository"/>
</object>

<object id="FixServiceBasic" type="Kodi.Kodiak.OrderEntry.FixServices.FixService, Kodi.Kodiak.OrderEntry.FixServices" singleton="false" scope="session">
    <property name="LoginRepository" ref="LoginRepository"/>
    <property name="UserRepository" ref="UserRepository" />
    <property name="GroupRepository" ref="GroupRepository" />
    <property name="DiscountCategoryRepository" ref="DiscountCategoryRepository" />
    <property name="SystemSettings" ref="SystemSettings" />
    <property name="ClientSettings" ref="ClientSettings" />
</object>

<object id="OrderInstructionServiceBasic" type="Kodi.Kodiak.Services.OrderInstructionService, Kodi.Kodiak.OrderInstructions" singleton="false" scope="session">
    <property name="OrderInstructionEntry" ref="OrderInstructionEntryDma"/>
    <property name="OrderInstructionSearch" ref="OrderInstructionSearch"/>
</object>


system.servicemodel.services.config

<service behaviorConfiguration="BasicAuthServiceBehavior" name="OrderInstructionServiceBasic">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.Services.ServiceContracts.IOrderInstructionService" >
        <identity>
            <dns value="localhost" />
        </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>

<service behaviorConfiguration="ServiceBehavior" name="InstrumentServiceBasic">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.Services.ServiceContracts.IInstrumentService" >
        <identity>
            <dns value="localhost" />
        </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>

  
    <service behaviorConfiguration="BasicAuthServiceBehavior" name="FixServiceBasic">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.OrderEntry.FixServices.IFixService" >
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service> 

system.servicemodel.bindings.config

Add the following in <basicHttpBinding>
<binding name="BasicAuthBinding"
    closeTimeout="00:10:00"
    openTimeout="00:10:00"
    receiveTimeout="00:10:00"
    sendTimeout="00:10:00" >
    <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Basic" />
    </security>
</binding>


system.servicemodel.behaviours.config

<behavior name="BasicAuthServiceBehavior">
    <serviceMetadata httpGetEnabled="true" />
    <serviceDebug includeExceptionDetailInFaults="true" />
    <serviceCredentials>
        <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Kodi.Kodiak.Security.BasicUsernamePasswordValidator, Kodi.Kodiak.Security" />
    </serviceCredentials>
    <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="200" maxConcurrentInstances="200" />
    <dataContractSerializer maxItemsInObjectGraph="2147483646" />
</behavior>


KodiakServicesServer/Config/Services

CustomServices
<object id="AdminServiceBasic" type="Kodi.Kodiak.Services.AdminService, Kodi.Kodiak.Admin" singleton="false" scope="session">
    <property name="MarketGatewayRepository" ref="MarketGatewayRepository"/>
    <property name="MarketGatewayConnectionRepository" ref="MarketGatewayConnectionRepository"/>
    <property name="ExchangeRepository" ref="ExchangeRepository"/>
    <property name="BrokerRepository" ref="BrokerRepository"/>
    <property name="UserRepository" ref="UserRepository"/>
    <property name="GroupRepository" ref="GroupRepository"/>
    <property name="ExternalUserRepository" ref="ExternalUserRepository"/>
    <property name="CustomerRepository" ref="CustomerRepository"/>
    <property name="PortfolioRepository" ref="PortfolioRepository"/>
    <property name="AccountRepository" ref="AccountRepository"/>
    <property name="TraderRepository" ref="TraderRepository"/>

    <property name="MarketGatewayEntityBuilder" ref="MarketGatewayEntityBuilder"/>
    <property name="MarketGatewayConnectionEntityBuilder" ref="MarketGatewayConnectionEntityBuilder"/>
    <property name="TraderEntityBuilder" ref="TraderEntityBuilder"/>
    <property name="BrokerEntityBuilder" ref="BrokerEntityBuilder"/>
  </object>  



system.servicemodel.services.config
  <service behaviorConfiguration="BasicAuthServiceBehavior" name="AdminServiceBasic">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.Services.ServiceContracts.IAdminService" >
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>  

system.servicemodel.bindings.config

Add the following in <basicHttpBinding>
<binding name="BasicAuthBinding"
    closeTimeout="00:10:00"
    openTimeout="00:10:00"
    receiveTimeout="00:10:00"
    sendTimeout="00:10:00" >
    <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Basic" />
    </security>
</binding>


system.servicemodel.behaviours.config

<behavior name="BasicAuthServiceBehavior">
    <serviceMetadata httpGetEnabled="true" />
    <serviceDebug includeExceptionDetailInFaults="true" />
    <serviceCredentials>
        <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Kodi.Kodiak.Security.BasicUsernamePasswordValidator, Kodi.Kodiak.Security" />
    </serviceCredentials>
    <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="200" maxConcurrentInstances="200" />
    <dataContractSerializer maxItemsInObjectGraph="2147483646" />
</behavior>

The Client config in the FIX server must be in place:

Environment/system.servicemodel.client.config

<?xml version="1.0" encoding="utf-8"?>
<client>
    <!-- WsHttpBindings using windows authentication -->
            <endpoint address="http://XXXXX:8080/InstrumentServiceBasic.svc" behaviorConfiguration="BehaviorConfig" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.Services.ServiceContracts.IInstrumentService" name="InstrumentService" />          
            <endpoint address="http://XXXXX:8080/OrderInstructionServiceBasic.svc" behaviorConfiguration="BehaviorConfig" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.Services.ServiceContracts.IOrderInstructionService" name="OrderInstructionService" />           
            <endpoint address="http://XXXXX:8080/AdminServiceBasic.svc" behaviorConfiguration="BehaviorConfig" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.Services.ServiceContracts.IAdminService" name="AdminService" />
            <endpoint address="http://XXXXX:8080/FixServiceBasic.svc" behaviorConfiguration="BehaviorConfig" binding="basicHttpBinding" bindingConfiguration="BasicAuthBinding" contract="Kodi.Kodiak.OrderEntry.FixServices.IFixService" name="FixService" />      
</client>

Environment/appSettings.config the following must be configed

	<add key="UseOmsBasicAuthentication" value="true" />
	<add key="OmsUsername" value="XXX" />
	<add key="OmsPassword" value="XXX"/>

Create User Group and Default user in AdminX

Create External User in AdminX with the correct customer the external user will be connect to the correct Comp Id ín the FIX server

  • No labels