Browse Source

Correct certificate handling

master
Denis Tereshkin 4 years ago
parent
commit
1e3fa158cb
  1. 14
      app/Main.hs

14
app/Main.hs

@ -89,13 +89,15 @@ main = do
brokerQ <- mkQuikBroker tickTable (dllPath config) (quikPath config) (quikAccounts config) (commissions config) logger brokerQ <- mkQuikBroker tickTable (dllPath config) (quikPath config) (quikAccounts config) (commissions config) logger
brokerP <- mkPaperBroker tickTable c1 1000000 ["demo"] (commissions config) logger brokerP <- mkPaperBroker tickTable c1 1000000 ["demo"] (commissions config) logger
withZapHandler ctx (\zap -> do withZapHandler ctx (\zap -> do
zapSetWhitelist zap "global" $ whitelist config zapSetWhitelist zap "broker" $ whitelist config
zapSetBlacklist zap "global" $ blacklist config zapSetBlacklist zap "broker" $ blacklist config
zapSetWhitelist zap "quotesource" $ whitelist config
zapSetBlacklist zap "quotesource" $ blacklist config
case brokerClientCertificateDir config of case brokerClientCertificateDir config of
Just certFile -> do Just certFile -> do
certs <- loadCertificatesFromDirectory certFile certs <- loadCertificatesFromDirectory certFile
forM_ certs (\cert -> zapAddClientCertificate zap "global" cert) forM_ certs (\cert -> zapAddClientCertificate zap "broker" cert)
Nothing -> return () Nothing -> return ()
serverCert <- case brokerServerCertPath config of serverCert <- case brokerServerCertPath config of
@ -107,7 +109,7 @@ main = do
return Nothing return Nothing
Right cert -> return $ Just cert Right cert -> return $ Just cert
Nothing -> return Nothing Nothing -> return Nothing
let serverParams = defaultServerSecurityParams { sspDomain = Just "global", let serverParams = defaultServerSecurityParams { sspDomain = Just "broker",
sspCertificate = serverCert } sspCertificate = serverCert }
bracket (forkIO $ pipeReaderThread ctx config chan logger) killThread (\_ -> do bracket (forkIO $ pipeReaderThread ctx config chan logger) killThread (\_ -> do
@ -141,11 +143,11 @@ main = do
logWith logger Info "main" $ "QS: " <> T.pack qsep logWith logger Info "main" $ "QS: " <> T.pack qsep
bracket (startPipeReader ctx (T.pack qsep) (T.pack tep) qsdataChan logger) stopPipeReader (\_ -> forever $ threadDelay 1000000) bracket (startPipeReader ctx (T.pack qsep) (T.pack tep) qsdataChan logger) stopPipeReader (\_ -> forever $ threadDelay 1000000)
_ -> return () _ -> return ()
quoteSourceServerSecurityParams = defaultServerSecurityParams { sspDomain = Just "global" } quoteSourceServerSecurityParams = defaultServerSecurityParams { sspDomain = Just "quotesource" }
loadCertificatesFromDirectory :: FilePath -> IO [CurveCertificate] loadCertificatesFromDirectory :: FilePath -> IO [CurveCertificate]
loadCertificatesFromDirectory filepath = do loadCertificatesFromDirectory filepath = do
files <- listDirectory filepath files <- listDirectory filepath
catMaybes <$> forM files (\file -> hush <$> loadCertificateFromFile file) catMaybes <$> forM files (\file -> hush <$> loadCertificateFromFile (filepath <> "/" <> file))

Loading…
Cancel
Save