zope.authentication fornisce una definizione di concetti di autenticazione per l'uso in Zope Framework.
Documentazione dettagliata strong>
Supporto Logout
Supporto Logout è definito da una semplice interfaccia ILogout:
& Nbsp; >>> da zope.authentication.interfaces import ILogout
che ha un unico metodo di 'disconnessione'.
L'uso corrente di ILogout è adattare un componente IAuthentication per ILogout Per illustrare, creeremo una semplice implementazione di logout che si adatta IAuthentication:
& Nbsp; >>>adapter (IAuthentication)
& Nbsp; ...implementer (ILogout)
& Nbsp; ... classe SimpleLogout (oggetto):
& Nbsp; ...
& Nbsp; ... def __init __ (self, auth):
& Nbsp; ... passaggio
& Nbsp; ...
& Nbsp; ... def il logout (auto, richiesta):
& Nbsp; ... print 'utente è disconnesso'
& Nbsp; >>> provideAdapter (SimpleLogout)
e qualcosa da rappresentare un programma di utilità di autenticazione:
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... Authentication classe (oggetto):
& Nbsp; ... passaggio
& Nbsp; >>> auth = Autenticazione ()
Per effettuare un logout, ci adattiamo auth di ILogout e chiamiamo 'disconnessione':
& Nbsp; >>> logout = ILogout (autenticazione)
& Nbsp; >>> logout.logout (TestRequest ())
& Nbsp; l'utente è disconnesso
Adapter La 'NoLogout'
La classe:
& Nbsp; >>> da zope.authentication.logout import NoLogout
possono essere registrati come un fornitore di fallback ILogout per i componenti IAuthentication che non sono altrimenti adattabili a ILogout. Metodo di logout di NoLogout è un no-op:
& Nbsp; >>> NoLogout (autenticazione) .logout (TestRequest ())
Logout Interfaccia utente
Poiché alcuni protocolli di autenticazione non supportano ufficialmente logout, potrebbe non essere possibile per un utente per il logout dopo lui o lei ha effettuato l'accesso. In tal caso, non sarebbe opportuno presentare un'interfaccia utente per l'accesso fuori.
Poiché il supporto di logout è site-configurabile, Zope fornisce un adattatore che, quando registrato, indica che il sito è configurato per il logout:
& Nbsp; >>> da zope.authentication.logout import LogoutSupported
Questa classe serve solo come una bandiera in quanto implementa ILogoutSupported:
& Nbsp; >>> da zope.authentication.interfaces import ILogoutSupported
& Nbsp; >>> ILogoutSupported.implementedBy (LogoutSupported)
& Nbsp; La vera
& Nbsp; >>> richiesta = oggetto ()
& Nbsp; >>> ILogoutSupported.providedBy (LogoutSupported (richiesta))
& Nbsp; La vera
Termini principali
Termini principali sono utilizzati per supportare interfacce del browser per la ricerca fonti principali. Essi forniscono l'accesso a gettoni e titoli per i valori. I termini principali vista utilizza un programma di utilità di autenticazione per ottenere principali titoli. Creiamo un programma di utilità di autenticazione per dimostrare come funziona:
& Nbsp; >>> class Principal:
& Nbsp; ... def __init __ (self, id, titolo):
& Nbsp; ... self.id, self.title = id, titolo
& Nbsp; >>> da zope.interface import realizzatore
& Nbsp; >>> da zope.authentication.interfaces import IAuthentication
& Nbsp; >>> da zope.authentication.interfaces import PrincipalLookupError
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... class AuthUtility:
& Nbsp; ... Dati = {'Jim': 'Jim Fulton', 'stephan': 'Stephan Richter'}
& Nbsp; ...
& Nbsp; ... def getPrincipal (self, id):
& Nbsp; ... title = self.data.get (id)
& Nbsp; ... se la proprietà non è None:
& Nbsp; ... ritorno Principal (id, titolo)
& Nbsp; ... alzare PrincipalLookupError
Ora abbiamo bisogno di installare l'utility di autenticazione:
& Nbsp; >>> da zope.component provideUtility import
& Nbsp; >>> provideUtility (AuthUtility (), IAuthentication)
Abbiamo bisogno di una fonte principale in modo da poter creare una vista da esso.
& Nbsp; >>> da zope.component getUtility import
& Nbsp; >>> class PrincipalSource:
& Nbsp; ... def __contains __ (self, id):
& Nbsp; ... auth = getUtility (IAuthentication)
& Nbsp; ... provare:
& Nbsp; ... auth.getPrincipal (id)
& Nbsp; ... tranne PrincipalLookupError:
& Nbsp; ... tornare False
& Nbsp; ... else:
& Nbsp; ... restituirà True
Ora siamo in grado di creare una vista termini:
& Nbsp; >>> da PrincipalTerms importazione zope.authentication.principal
& Nbsp; >>> termini = PrincipalTerms (PrincipalSource (), None)
Ora possiamo chiedere i termini vista per i termini:
& Nbsp; >>> termine = terms.getTerm ('stephan')
& Nbsp; >>> term.title
& Nbsp; 'Stephan Richter'
& Nbsp; >>> term.token
& Nbsp; 'c3RlcGhhbg__'
Se chiediamo un termine che non esiste, si ottiene un errore di ricerca:
& Nbsp; >>> terms.getTerm ('bob')
& Nbsp; Traceback (chiamata più recente scorso):
& Nbsp; ...
& Nbsp; LookupError: bob
Se abbiamo un gettone, possiamo ottenere l'id principale per esso.
& Nbsp; >>> terms.getValue ('c3RlcGhhbg__')
& Nbsp; 'stephan'
Cosa c'è di nuovo in questa versione:
- Broke appropriati test dipendenza zope.component.nextutility.
- (Forward-compatibilità con zope.component 4.0.0).
- Sostituito utilizzo zope.component.adapts deprecato con decoratore zope.component.adapter equivalente.
- Sostituito utilizzo zope.interface.implements deprecato con decoratore zope.interface.implementer equivalente.
- cessato il supporto per Python 2.4 e 2.5.
Requisiti :
- Python
I commenti non trovato