Spec-Zone .ru
спецификации, руководства, описания, API

15.7.4.5. Исследование Учетных данных Аутентификации сread_auth()

read_auth() функция инициирована, когда обмен аутентификационными данными инициируется клиентом. В последовательности выполнения, read_auth() сразу происходит после read_handshake(), таким образом, выбор сервера был уже сделан, но информация о соединении и авторизации еще не была обеспечена для сервера бэкэнда.

Можно получить информацию об аутентификации, исследуя proxy.connection.client структура. Для получения дополнительной информации см. proxy.connection.

Например, можно напечатать имя пользователя и пароль, предоставленный во время использования авторизации:

function read_auth()        print("    username      : " .. proxy.connection.client.username)        print("    password      : " .. string.format("%q", proxy.connection.client.scrambled_password))end

Можно прервать процесс аутентификации в пределах этой функции и возвратить ошибочный пакет назад клиенту, создавая новый пакет и возврат proxy.PROXY_SEND_RESULT:

proxy.response.type = proxy.MYSQLD_PACKET_ERRproxy.response.errmsg = "Logins are not allowed"return proxy.PROXY_SEND_RESULT