zope.authentication fournit une définition des concepts d'authentification pour une utilisation dans le Cadre Zope.
Documentation détaillée
Soutien Déconnexion
Déconnexion support est définie par une interface simple ILogout de:
& Nbsp; >>> from zope.authentication.interfaces importer ILogout
qui a une méthode unique 'déconnexion'.
L'utilisation actuelle de ILogout est d'adapter un composant IAuthentication à ILogout Pour illustrer, nous allons créer une implémentation simple de déconnexion qui se adapte IAuthentication:
& Nbsp; >>>adapter (IAuthentication)
& Nbsp; ...implementer (ILogout)
& Nbsp; ... SimpleLogout classe (objet):
& Nbsp; ...
& Nbsp; ... def __init __ (self, auth):
& Nbsp; ... passe
& Nbsp; ...
& Nbsp; ... déconnecter def (auto, demande):
& Nbsp; ... print 'utilisateur se est déconnecté "
& Nbsp; >>> provideAdapter (SimpleLogout)
et quelque chose pour représenter un utilitaire d'authentification:
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... Authentification de classe (objet):
& Nbsp; ... passe
& Nbsp; >>> auth = authentification ()
Pour effectuer une déconnexion, nous nous adaptons à auth ILogout et appelons «déconnexion»:
& Nbsp; >>> déconnexion = ILogout (auth)
& Nbsp; >>> logout.logout (TestRequest ())
& Nbsp; l'utilisateur se est déconnecté
L'adaptateur 'NoLogout'
La classe:
& Nbsp; >>> from zope.authentication.logout importation NoLogout
peut être enregistré en tant que fournisseur de repli des ILogout pour les composants IAuthentication qui ne sont pas autrement adaptable à ILogout. La méthode de déconnexion de NoLogout est un no-op:
& Nbsp; >>> NoLogout (auth) .logout (TestRequest ())
Interface utilisateur Déconnexion
Parce que certains protocoles d'authentification ne supportent pas officiellement déconnexion, il peut ne pas être possible pour un utilisateur de se déconnecter une fois qu'il ou elle se est connecté. Dans de tels cas, il serait inapproprié de présenter une interface utilisateur permettant de vous déconnecter.
Parce que le soutien de déconnexion est le site-configurable, Zope fournit un adaptateur qui, une fois enregistré, indique que le site est configuré pour la déconnexion:
& Nbsp; >>> from zope.authentication.logout importation LogoutSupported
Cette classe sert simplement de marquer comme il met en œuvre ILogoutSupported:
& Nbsp; >>> from zope.authentication.interfaces importer ILogoutSupported
& Nbsp; >>> ILogoutSupported.implementedBy (LogoutSupported)
& Nbsp; Vrai
& Nbsp; >>> demande = objet ()
& Nbsp; >>> ILogoutSupported.providedBy (LogoutSupported (demande))
& Nbsp; Vrai
Conditions principales
Conditions principaux sont utilisés pour soutenir des interfaces de navigateur pour la recherche des sources principales. Ils donnent accès à des jetons et des titres pour les valeurs. Les termes principale vue utilise un utilitaire d'authentification pour obtenir les titres principaux. Créons un utilitaire d'authentification pour montrer comment cela fonctionne:
& Nbsp; >>> classe principale:
& Nbsp; ... def __init __ (self, id, titre):
& Nbsp; ... self.id, self.title = id, title
& Nbsp; >>> from zope.interface importation exécutant
& Nbsp; >>> from zope.authentication.interfaces importer IAuthentication
& Nbsp; >>> from zope.authentication.interfaces importer PrincipalLookupError
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... classe AuthUtility:
& Nbsp; ... data = {'jim »:« Jim Fulton »,« stephan': 'Stephan Richter'}
& Nbsp; ...
& Nbsp; ... def getPrincipal (auto, id):
& Nbsp; ... title = self.data.get (id)
& Nbsp; ... si le titre ne est pas None:
& Nbsp; ... déclaration principale (id, title)
& Nbsp; ... soulever PrincipalLookupError
Maintenant, nous devons installer l'utilitaire d'authentification:
& Nbsp; >>> from zope.component provideUtility d'importation
& Nbsp; >>> provideUtility (AuthUtility (), IAuthentication)
Nous avons besoin d'une source principale de sorte que nous pouvons créer une vue de celle-ci.
& Nbsp; >>> from zope.component getUtility d'importation
& Nbsp; >>> classe PrincipalSource:
& Nbsp; ... def __contains __ (self, id):
& Nbsp; ... auth = getUtility (IAuthentication)
& Nbsp; ... essayez:
& Nbsp; ... auth.getPrincipal (id)
& Nbsp; ... sauf PrincipalLookupError:
& Nbsp; return false ...
& Nbsp; ... else:
& Nbsp; ... renvoyer Vrai
Maintenant, nous pouvons créer une vue termes:
& Nbsp; >>> from PrincipalTerms d'importation zope.authentication.principal
& Nbsp; >>> termes = PrincipalTerms (PrincipalSource (), Aucun)
Maintenant, nous pouvons demander à voir les termes de termes:
& Nbsp; >>> terme = terms.getTerm ('stephan')
& Nbsp; >>> term.title
& Nbsp; »Stephan Richter '
& Nbsp; >>> term.token
& Nbsp; »c3RlcGhhbg__ '
Si nous demandons un terme qui ne existe pas, nous obtenons une erreur de recherche:
& Nbsp; >>> terms.getTerm ('bob')
& Nbsp; d'enquête (appel le plus récent dernière):
& Nbsp; ...
& Nbsp; LookupError: bob
Si nous avons un jeton, nous pouvons obtenir l'id principale pour elle.
& Nbsp; >>> terms.getValue ('c3RlcGhhbg__')
& Nbsp; »stephan '
Quoi de neuf dans cette version:
- Broke inappropriée tests dépendance zope.component.nextutility.
- (Forward-compatibilité avec zope.component 4.0.0).
- Remplacé obsolète l'utilisation de zope.component.adapts avec zope.component.adapter décorateur équivalent.
- Remplacé obsolète l'utilisation de zope.interface.implements avec zope.interface.implementer décorateur équivalent.
- supprimé le support pour Python 2.4 et 2.5.
Exigences :
- Python
Commentaires non trouvées