Bug: TransferFamilyAuthorizer.password raises KeyError when the event has no password

Aperta
#8,714 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

@anishmehta24 ci sta già lavorando.

Dal 30/10/2026.

  • #8715 di @anishmehta24 — aperta

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug event_sources

Expected Behaviour

TransferFamilyAuthorizer.password is typed str | None and documented as "None in case customer authenticating with certificates", so an authorizer event without a password should give None. The Pydantic TransferFamilyAuthorizer model already declares password with default=None.

Current Behaviour

The property returns self["password"], so an event without a password key raises KeyError instead of returning None. The custom identity provider examples in the Transfer Family docs read it defensively (event.get('password', '') == '' in Python) to detect key-based logins, which the data class can't do today.

Code snippet

from aws_lambda_powertools.utilities.data_classes import TransferFamilyAuthorizer

event = {"username": "bobusa", "protocol": "SFTP", "serverId": "s-abcd123456", "sourceIp": "192.168.0.100"}
TransferFamilyAuthorizer(event).password  # KeyError: 'password'

Steps to Reproduce

  1. Build a TransferFamilyAuthorizer from an event that has no password key.
  2. Read .password.
  3. KeyError is raised.

Possible Solution

Return self.get("password"), matching the type hint and the Pydantic model. I can open a PR.

Powertools for AWS Lambda (Python) version

latest (develop, 3.38.0)

AWS Lambda function runtime

3.12

Packaging format used

PyPi

Debugging logs

No response

Lingua principale
Python
Stelle
3.3k
Fork
511
Merge medio
3g 12h
PR unite (30g)
93

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aws-powertools/powertools-lambda-python

Tutte le issue di aws-powertools/powertools-lambda-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.