-
Connector/C++ 现在支持使用智能卡、安全密钥和生物识别读取器等设备对 MySQL 服务器进行身份验证。此身份验证方法基于快速身份在线 (FIDO) 标准。为确保使用遗留 JBDC API 的客户端应用程序在用户预期与 FIDO 设备交互时得到通知,Connector/C++
setCallback()在MySQL_Driver接受名为Fido_Callback.class Fido_Callback { public: Fido_Callback(std::function<void(SQLString)>); /** * Override this message to receive Fido Action Requests */ virtual void FidoActionRequested(sql::SQLString msg); };如果需要,驱动程序创建的任何连接都可以使用回调。但是,如果应用程序未明确设置回调,
libmysqlclient则默认确定行为,这涉及将消息打印到标准输出。笔记在 Windows 上,客户端应用程序必须以管理员身份运行。这是插件
fido2.dll使用的库 的要求。authentication_fido客户端应用程序有两个选项可用于从连接器获取回调:
-
通过将函数或 lambda 传递给
Fido_Callback.driver->setCallBack(Fido_Callback([](SQLString msg) {...})); -
通过实现虚拟方法
FidoActionRequested。class MyWindow : public Fido_Callback { void FidoActionRequested(sql::SQLString msg) override; }; MyWindow window; driver->setCallBack(window);
设置新的回调总是会删除以前的回调。要禁用活动回调并恢复默认行为,请
nullptr作为函数回调传递。例子:driver->setCallBack(Fido_Callback(nullptr));有关 FIDO 身份验证的更多信息,请参阅 FIDO 可插入身份验证。
-
对于捆绑了 OpenSSL 库的平台,Connector/C++ 的链接 OpenSSL 库已更新至版本 1.1.1n。在https://www.openssl.org/news/cl111.txt和 https://www.openssl.org/news/vulnerabilities.html中描述了新 OpenSSL 版本中修复的问题 。(缺陷号 33987637)
-
Connector/C++ X DevAPI 参考文档(位于 https://mysql.net.cn/doc/index-connectors.html)更新了
Collection.modify().unset()操作的使用说明。的参数unset()是一个字符串,将被解释为文档路径表达式(类似于"$.foo.'bar'"),而不是文字字段名称。如果参数包含特殊字符(空格、'.'、'$' 等),则需要将字段名称用引号引起来。例如:Collection.modify(~~).unset(""field name with spaces"")(缺陷号 33795881)
-
Connector/C++ 支持现有 TLS/SSL 连接选项的新别名,以在 X DevAPI、X DevAPI for C 和遗留的基于 JDBC 的 API 之间提供更好的一致性。这种协调工作可确保选项命名、功能和行为得到一致实施,同时还保持与现有选项的兼容性。例如,Connector/C++ 现在确保设置 TLS/SSL 连接选项以及
ssl-mode=DISABLED,如果客户端应用程序提供不兼容的选项,或者在连接字符串或属性中重复相同的选项,则不会返回错误。适用于 X DevAPI 和 X DevAPI for C 的更改是:
tls-version作为别名添加到现有tls-versions连接选项。ssl-capath、ssl-crl和ssl-crlpath选项现在实现了与遗留 JDBC API 相同的功能。如果重复相同的选项,则以最后一个选项值为准。
遗留 JDBC API 的新别名是:
ssl-mode(对于现有OPT_SSLMODE选项):与服务器连接的首选安全状态。ssl-ca(对于现有sslCA选项):包含受信任的 SSL 证书颁发机构列表的文件。ssl-capath(对于现有sslCAPath选项):包含受信任的 SSL 证书颁发机构证书文件的目录。ssl-cert(对于现有sslCert选项):包含 X.509 证书的文件。ssl-cipher(对于现有sslCipher选项):用于连接加密的允许密码。ssl-key(对于现有sslKey选项):包含 X.509 密钥的文件。ssl-crl(对于现有sslCRL选项):包含证书吊销列表的文件。ssl-crlpath(对于现有sslCRLPath选项):包含证书吊销列表文件的目录。tls-version(对于现有OPT_TLS_VERSION选项):用于加密连接的允许 TLS 协议。
使用遗留 JDBC API 时,设置选项两次的效果由客户端库决定。此外,使用旧版 JDBC API 时,类似 URI 的字符串中不支持 TLS/SSL 选项。