[SERVER-49114] Replace getSSLManager() with getSSLManagerCoordinator() Created: 25/Jun/20  Updated: 29/Oct/23  Resolved: 14/Jul/20

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 4.7.0

Type: Task Priority: Major - P3
Reporter: Mark Benvenuto Assignee: Gabriel Marks
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Sprint: Security 2020-07-13, Security 2020-07-27
Participants:

 Description   
  • Change TransportLayer/ASIO to store std::shared_ptr<SSLManagerInterface>
  • Change TransportLayer/ASIO to call getSSLManagerCoordinator() once per connection
  • ServerStatus and InitializeGlobalServerState are permitted to call getSSLManagerCoordinator()
  • Add a new class called getSSLManagerCoordinator in ssl_manager.h/cpp

    class SSLManagerCoordinator {
        static SSLManagerCoordinator* get()
        std::shared_ptr<SSLManagerInterface> getSSLManager();
        
        void rotate();
     
        Mutex _lock;
        synchronized_value<std::shared_ptr<SSLManagerInterface>> _manager;
    		};
    

  • Note: In this change, rotate() is a noop and will be implemented in a later change
  • Implement constructor and destructor of first SSLManagerInterace by calling SLManagerInterface::create using GlobalInitializerRegisterer
  • Remove global initializers for existing SSLManagers in ssl_manager_<windows/apple/openssl>.cpp
  • Remove theSSLManager


 Comments   
Comment by Githook User [ 14/Jul/20 ]

Author:

{'name': 'Gabriel Marks', 'email': 'gabriel.marks@mongodb.com', 'username': 'marksg07'}

Message: SERVER-49114 Replace getSSLManager() with SSLManagerCoordinator
Branch: master
https://github.com/mongodb/mongo/commit/f1d1e28bb59cfdda58c9bf8aaf50561eca3aea4d

Generated at Thu Feb 08 05:18:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.