Hello, My name is Russell and I am new to Thirft and the Thirft mail community.
I have successfully used Thrift to create some prototypes of remote systems passing messages using the C++ libraries. I am compiling Boost and Thrift myself and link statically into the application. Currently I have implemented the TSimpleServer. The example uses unencrypted communications as far as I can tell and I would like to implement TLS/SSL communication. I see examples of a Java SSL server on the internet but haven't seen anything concrete in C++. My attempts to duplicate the Java code in C++ were unsuccessful. Is there a reference implementation somewhere? I tried JetBrains AI and it generated the following code which I modified to fit my application: #include <thrift/server/TSimpleServer.h> #include <thrift/transport/TSSLServerSocket.h> #include <thrift/protocol/TBinaryProtocol.h> // Function to start an Apache Thrift server using TLS void StartTLSThriftServer(const std::string &host, int port, const std::string &certPath, const std::string &keyPath) { // Create SSL/TLS configuration apache::thrift::transport::TSSLSocketFactory sslSocketFactory; sslSocketFactory.loadCertificate(certPath.c_str()); sslSocketFactory.loadPrivateKey(keyPath.c_str()); // Setup server transport auto serverTransport = std::make_shared<apache::thrift::transport::TSSLServerSocket>(port, &sslSocketFactory); // Setup protocol factory auto protocolFactory = std::make_shared<apache::thrift::protocol::TBinaryProtocolFactory>(); // Set up the handler and processor (assuming a pre-defined handler) auto handler = std::make_shared<YourServiceHandler>(); // Replace with your service handler auto processor = std::make_shared<YourServiceProcessor>(handler); // Replace with your service processor // Create and run the server apache::thrift::server::TSimpleServer server(processor, serverTransport, protocolFactory); std::cout << "Starting the Apache Thrift server with TLS on " << host << ":" << port << std::endl; server.serve(); } When I compile, I get the following error: /home/osboxes/starfish/dataman_service/src/main.cpp: In function ‘void StartTLSThriftServer(const string&, int, const string&, const string&)’: /home/osboxes/starfish/dataman_service/src/main.cpp:305:23: error: aggregate ‘apache::thrift::transport::TSSLSocketFactory sslSocketFactory’ has incomplete type and cannot be defined 305 | TSSLSocketFactory sslSocketFactory; | ^~~~~~~~~~~~~~~~ Any ideas where I should go with this? (Or should I look at using nginx as a proxy?) I also have a question about performance that I will ask on a different thread. Thanks, Russell