Authenticate using SASL PLAIN (RFC 4616)
(credentials: MongoCredential, conn: AsyncConnection)
| 318 | |
| 319 | |
| 320 | async def _authenticate_plain(credentials: MongoCredential, conn: AsyncConnection) -> None: |
| 321 | """Authenticate using SASL PLAIN (RFC 4616)""" |
| 322 | source = credentials.source |
| 323 | username = credentials.username |
| 324 | password = credentials.password |
| 325 | payload = (f"\x00{username}\x00{password}").encode() |
| 326 | cmd = { |
| 327 | "saslStart": 1, |
| 328 | "mechanism": "PLAIN", |
| 329 | "payload": Binary(payload), |
| 330 | "autoAuthorize": 1, |
| 331 | } |
| 332 | await conn.command(source, cmd) |
| 333 | |
| 334 | |
| 335 | async def _authenticate_x509(credentials: MongoCredential, conn: AsyncConnection) -> None: |