Paul Johnston <paul....@gmail.com> added the comment:
Here's a test app you can use to try it out
__________________________________
Repoze Bugs <b...@bugs.repoze.org>
<http://bugs.repoze.org/issue82>
__________________________________
import webob as wo, wsgiref.simple_server as wrs, sqlite3, sha
def simple_app(environ, start_response):
req = wo.Request(environ)
resp = wo.Response(request=req, content_type="text/html; charset=UTF8")
if 'REMOTE_USER' in environ:
resp.body = 'hello world'
else:
resp.status = 401
return resp(environ, start_response)
from repoze.who.middleware import PluggableAuthenticationMiddleware
from repoze.who.classifiers import default_request_classifier
from repoze.who.classifiers import default_challenge_decider
from repoze.who.plugins.auth_tkt import AuthTktCookiePlugin
from repoze.who.plugins.hashform import HashFormPlugin
from repoze.who.plugins.sql import SQLAuthenticatorPlugin,
default_password_compare
db = sqlite3.connect(':memory:')
db.execute('create table users (name varchar, password varchar)')
db.execute('insert into users values (?, ?)', ('paj',
'{SHA}'+sha.new('test').hexdigest()))
db.commit()
sqlauth = SQLAuthenticatorPlugin('select name, password from users where name =
:login', lambda: db, default_password_compare)
auth_tkt = AuthTktCookiePlugin('secret', 'auth_tkt')
form = HashFormPlugin('__do_login', rememberer_name='auth_tkt', stored_sha=True)
identifiers = [('form', form),('auth_tkt',auth_tkt)]
authenticators = [('sqlauth', sqlauth)]
challengers = [('form',form)]
mdproviders = []
middleware = PluggableAuthenticationMiddleware(
simple_app,
identifiers,
authenticators,
challengers,
mdproviders,
default_request_classifier,
default_challenge_decider
)
if __name__ == "__main__":
wrs.make_server('', 8000, middleware).serve_forever()
_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev