Mercurial > hg > orthanc-databases
comparison Framework/MySQL/MySQLParameters.cpp @ 163:4d32c9c8d6c0
Added support for TLS connections
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Mon, 13 Jul 2020 11:59:29 +0200 |
parents | 063aa53b5917 |
children | 6fe74f9a516e |
comparison
equal
deleted
inserted
replaced
162:fc13b4e8f888 | 163:4d32c9c8d6c0 |
---|---|
50 { | 50 { |
51 Reset(); | 51 Reset(); |
52 } | 52 } |
53 | 53 |
54 | 54 |
55 MySQLParameters::MySQLParameters(const OrthancPlugins::OrthancConfiguration& configuration) | 55 MySQLParameters::MySQLParameters(const OrthancPlugins::OrthancConfiguration& pluginConfiguration, const OrthancPlugins::OrthancConfiguration& orthancConfiguration) |
56 { | 56 { |
57 Reset(); | 57 Reset(); |
58 | 58 |
59 std::string s; | 59 std::string s; |
60 if (configuration.LookupStringValue(s, "Host")) | 60 if (pluginConfiguration.LookupStringValue(s, "Host")) |
61 { | 61 { |
62 SetHost(s); | 62 SetHost(s); |
63 } | 63 } |
64 | 64 |
65 if (configuration.LookupStringValue(s, "Username")) | 65 if (pluginConfiguration.LookupStringValue(s, "Username")) |
66 { | 66 { |
67 SetUsername(s); | 67 SetUsername(s); |
68 } | 68 } |
69 | 69 |
70 if (configuration.LookupStringValue(s, "Password")) | 70 if (pluginConfiguration.LookupStringValue(s, "Password")) |
71 { | 71 { |
72 SetPassword(s); | 72 SetPassword(s); |
73 } | 73 } |
74 | 74 |
75 if (configuration.LookupStringValue(s, "Database")) | 75 if (pluginConfiguration.LookupStringValue(s, "Database")) |
76 { | 76 { |
77 SetDatabase(s); | 77 SetDatabase(s); |
78 } | 78 } |
79 | 79 |
80 unsigned int port; | 80 unsigned int port; |
81 if (configuration.LookupUnsignedIntegerValue(port, "Port")) | 81 if (pluginConfiguration.LookupUnsignedIntegerValue(port, "Port")) |
82 { | 82 { |
83 SetPort(port); | 83 SetPort(port); |
84 } | 84 } |
85 | 85 |
86 if (configuration.LookupStringValue(s, "UnixSocket")) | 86 if (pluginConfiguration.LookupStringValue(s, "UnixSocket")) |
87 { | 87 { |
88 SetUnixSocket(s); | 88 SetUnixSocket(s); |
89 } | 89 } |
90 | 90 |
91 lock_ = configuration.GetBooleanValue("Lock", true); // Use locking by default | 91 lock_ = pluginConfiguration.GetBooleanValue("Lock", true); // Use locking by default |
92 | 92 |
93 maxConnectionRetries_ = configuration.GetUnsignedIntegerValue("MaximumConnectionRetries", 10); | 93 ssl_ = pluginConfiguration.GetBooleanValue("EnableSsl", false); |
94 connectionRetryInterval_ = configuration.GetUnsignedIntegerValue("ConnectionRetryInterval", 5); | 94 verifySslServerCertificates_ = pluginConfiguration.GetBooleanValue("SslVerifyServerCertificates", true); |
95 | |
96 const std::string defaultCaCertificates = orthancConfiguration.GetStringValue("HttpsCACertificates", ""); | |
97 sslCaCertificates_ = pluginConfiguration.GetStringValue("SslCACertificates", defaultCaCertificates); | |
98 | |
99 if (ssl_ && verifySslServerCertificates_ && sslCaCertificates_.empty()) | |
100 { | |
101 LOG(ERROR) << "MySQL: No SslCACertificates defined, unable to check SSL Server certificates"; | |
102 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | |
103 } | |
104 | |
105 maxConnectionRetries_ = pluginConfiguration.GetUnsignedIntegerValue("MaximumConnectionRetries", 10); | |
106 connectionRetryInterval_ = pluginConfiguration.GetUnsignedIntegerValue("ConnectionRetryInterval", 5); | |
95 } | 107 } |
96 | 108 |
97 | 109 |
98 void MySQLParameters::SetHost(const std::string& host) | 110 void MySQLParameters::SetHost(const std::string& host) |
99 { | 111 { |