aio-libs / aiomysql

aiomysql is a library for accessing a MySQL database from the asyncio
https://aiomysql.rtfd.io
MIT License
1.72k stars 254 forks source link

feat: pluggable auth plugins #945

Open barakalon opened 12 months ago

barakalon commented 12 months ago

What do these changes do?

First off - thanks for all the work on this package :)

This PR introduces a framework for auth plugins. This will make it easier to add auth plugins.

Why?

I need to implement the kerberos plugin. We also use this client with services that only imitate the mysql server (i.e. starrocks and proprietary services based on mysql-mimic), and I might need proprietary auth plugins.

Are there changes in behavior for the user?

Nope. All the existing auth_plugins should work as-is.

Related issue number

n/a

Checklist

This has tests in the sense that existing tests don't fail. But I don't think the existing tests for auth are that extensive, so it might warrant some more testing.

As for documentation - I'm not sure this should be documented just yet.

barakalon commented 12 months ago

And kerberos authentication: https://github.com/barakalon/aiomysql/blob/barak/kerberos/aiomysql/auth.py

barakalon commented 11 months ago

@Nothing4You any thoughts on this one?

Nothing4You commented 10 months ago

Hi @barakalon,

thank you for the PR, unfortunately it'll probably be a few more weeks until I'll have time to review this.

barakalon commented 10 months ago

Sounds good :+1: