Ñò
Ÿ‹Jc @ sk d d k l Z d d k l Z d d k l Z d e f d „ ƒ YZ d „ Z d „ Z d d d „ Z d S(
iÿÿÿÿ( t
implements( t IAuthenticator( t
resolveDottedt HTPasswdPluginc B s- e Z e e ƒ d „ Z d „ Z d „ Z RS( c C s | | _ | | _ d S( N( t filenamet check( t selfR R ( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyt __init__
s c
C s y | d } | d } Wn t j
o d SXt | i d ƒ o | i i d ƒ | i } nF y t | i d ƒ } Wn, t j
o | d i d | i ƒ d SXxr | D]j } y" | i ƒ i d d ƒ \ } } Wn t
j
o
q« n X| | j o | i | | ƒ o | Sq« q« Wd S(
Nt logint passwordt seeki t rs repoze.who.loggers could not open htpasswd file %st :i ( t KeyErrort Nonet hasattrR R
t opent IOErrort warnt rstript splitt
ValueErrorR ( R t environt identityR R t ft linet usernamet hashed( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyt authenticate s0
"
c C s d | i i t | ƒ f S( Ns <%s %s>( t __class__t __name__t id( R ( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyt __repr__, s ( R t
__module__R R R R R ( ( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyR s
c C s- d d k l } | d } | | | | ƒ j S( Niÿÿÿÿ( t crypti ( R" ( R R R" t salt( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyt crypt_check0 s
c C s
| | j S( N( ( R R ( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyt plain_check5 s c C sS | d j o t d ƒ ‚ n | d j o t d ƒ ‚ n t | ƒ } t | | ƒ S( Ns filename must be specifieds check_fn must be specified( R R R R ( R t check_fnR ( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyt make_plugin8 s
N( t zope.interfaceR t repoze.who.interfacesR t repoze.who.utilsR t objectR R$ R% R R' ( ( ( s? /usr/lib/python2.6/site-packages/repoze/who/plugins/htpasswd.pyt