Originally created by: zornade
Originally owned by: zornade
Risolve [#35].
Aggiunge il provider SPID_PROVIDER=sister al dispatcher introdotto in [#31] (provider Poste): login diretto al portale SISTER tramite il tab dedicato sulla pagina ADE, con credenziali nominali della convenzione.
utils._login_sister_direct(page, logger, username, password) — clicca il tab "Sister", inserisce SISTER_USERNAME/SISTER_PASSWORD, clicca "Accedi", attende networkidle.utils.login() — branching dopo goto_login: se SPID_PROVIDER=sister chiama direttamente _login_sister_direct() e ritorna, bypassando "Entra con SPID" e l'intera navigazione ADE portal (cerca SISTER → Vai al servizio → Conferma → Consultazioni → Visure catastali → Conferma Lettura), non necessaria perché il login SISTER nominale atterra già nell'area servizio.CloseSessionsSis + ri-login automatici prima di alzare l'eccezione (il sistema SISTER blocca quando rileva una sessione precedente non chiusa correttamente).Il login diretto SISTER è destinato esclusivamente all'intestatario della convenzione SISTER che desidera automatizzare le proprie consultazioni con le proprie credenziali nominali. Non è destinato a chi vuole rivendere o esporre l'accesso a terzi: la convenzione SISTER richiede che l'utenza sia personale, non cedibile, e che le consultazioni siano riconducibili all'intestatario. La responsabilità dell'uso delle credenziali resta dell'intestatario, esattamente come per il flusso SPID.
Documentazione aggiunta in README.md, sezione Provider di autenticazione supportati, e nella docstring di _login_sister_direct.
Questa PR si basa su feat/spid-provider-poste (#31): se [#31] viene mergiato prima, GitHub rebaserà automaticamente questa PR su main. Se viene mergiato dopo, il rebase è banale (estende lo stesso dispatcher).
Cherry-pick di:
pietromalerba/visura-api@6bcd072 — estrazione _login_sister_direct + dispatcherpietromalerba/visura-api@b2d606d — retry CloseSessionsSis fino a 10 tentativiAdattamenti rispetto all'upstream:
sielte+sister; qui supportiamo sielte+poste+sister)sisterRetrocompatibile: default invariato SPID_PROVIDER=sielte. Nessun cambiamento per chi usa SPID Sielte o Poste.
PYTHONPATH=. ADE_USERNAME=test ADE_PASSWORD=test pytest tests/ -q
49 passed
Lint:
black --check . → All done
ruff check . → All checks passed
(cherry picked from commit ...) su entrambi i pick (-x)
Tickets: #31
Tickets: #35
Tickets: #37
Tickets: #38
Tickets: #39
Ticket changed by: zornade