def get_form_config_preset(**kwargs): secret = kwargs['secret'] assert secret auth_tkt = AuthTktCookiePlugin(secret, 'auth_tkt', secure=True, timeout=7*24*60*60, reissue_time=5*24*60*60) # FIXME: the proper form (with callable) doesn't work #form = FormPlugin('__do_login', # rememberer_name='auth_tkt', # formcallable=render_login_form) form = FormPlugin('__do_login', rememberer_name='auth_tkt') form.classifications = { IIdentifier:['browser'], IChallenger:['browser'] } # only for browser doqu_plugin = get_doqu_auth_plugin() return { 'identifiers': [('form', form), ('auth_tkt', auth_tkt)], 'authenticators': [('doqu', doqu_plugin), # no cookie yet # TODO: this will work only in repoze.who 2.0+ but # it was incompatible with repoze.what at the # moment of writing this comment, so the line below # is commented out until repoze.who 2.0+ can be # safely used: # ('auth_tkt', auth_tkt) # cookie exists ], 'challengers': [('form', form)], 'mdproviders': [('doqu', doqu_plugin)], 'classifier': default_request_classifier, 'challenge_decider': default_challenge_decider, }
def middleware(app, base): from repoze.who.middleware import PluggableAuthenticationMiddleware from repoze.who.interfaces import IIdentifier, IChallenger from repoze.who.plugins.basicauth import BasicAuthPlugin from repoze.who.plugins.auth_tkt import AuthTktCookiePlugin from repoze.who.plugins.form import FormPlugin # from repoze.who.plugins.htpasswd import HTPasswdPlugin salt = "aa" def cleartext_check(password, hashed): return password == hashed def find_users(root, base): from mint.repoze.root import ZODBInit init = ZODBInit(base) mint_root = init(root) return mint_root["users"] zodb = ZODBPlugin("zeo://localhost:8100", find_users, base) # htpasswd = HTPasswdPlugin('mint.passwd', cleartext_check) basicauth = BasicAuthPlugin("Mint") auth_tkt = AuthTktCookiePlugin("secret", "auth_tkt") # move to RedirectingFormPlugin form = FormPlugin("__do_login", rememberer_name="auth_tkt", formbody=login_form) form.classifications = {IIdentifier: ["browser"], IChallenger: ["browser"]} # only for browser identifiers = [("form", form), ("auth_tkt", auth_tkt), ("basicauth", basicauth)] # authenticators = [('htpasswd', htpasswd)] authenticators = [("zodb", zodb)] challengers = [("form", form), ("basicauth", basicauth)] mdproviders = [] from repoze.who.classifiers import default_request_classifier, default_challenge_decider log_stream = None import os, logging, sys # if os.environ.get('WHO_LOG'): log = logging.getLogger("mint.repoze.auth") middleware = PluggableAuthenticationMiddleware( app, identifiers, authenticators, challengers, mdproviders, default_request_classifier, default_challenge_decider, log_stream=log, log_level=logging.DEBUG, ) return middleware
def middleware(app, base): from repoze.who.middleware import PluggableAuthenticationMiddleware from repoze.who.interfaces import IIdentifier, IChallenger from repoze.who.plugins.basicauth import BasicAuthPlugin from repoze.who.plugins.auth_tkt import AuthTktCookiePlugin from repoze.who.plugins.form import FormPlugin def find_users(root, base): from mint.repoze.root import ZODBInit init = ZODBInit(base) mint_root = init(root) return mint_root['users'] zodb = ZODBPlugin('zeo://localhost:8100', find_users, base, checker=default_checker) basicauth = BasicAuthPlugin('Mint') auth_tkt = AuthTktCookiePlugin('secret', 'auth_tkt') # move to RedirectingFormPlugin form = FormPlugin('__do_login', rememberer_name='auth_tkt', formbody=login_form) form.classifications = { IIdentifier:['browser'], IChallenger:['browser'] } # only for browser identifiers = [('form', form),('auth_tkt',auth_tkt),('basicauth',basicauth)] #authenticators = [('htpasswd', htpasswd)] authenticators = [('zodb', zodb)] challengers = [('form', form),('basicauth',basicauth)] mdproviders = [('groups', zodb)] from repoze.who.classifiers import default_request_classifier, default_challenge_decider log_stream = None import os, logging, sys #if os.environ.get('WHO_LOG'): log = logging.getLogger('mint.repoze.auth') middleware = PluggableAuthenticationMiddleware( app, identifiers, authenticators, challengers, mdproviders, default_request_classifier, default_challenge_decider, log_stream = log, log_level = logging.DEBUG ) return middleware
from repoze.who.plugins.cookie import InsecureCookiePlugin from repoze.who.plugins.form import FormPlugin from repoze.who.plugins.htpasswd import HTPasswdPlugin from StringIO import StringIO io = StringIO() salt = 'aa' for name, password in [ ('admin', 'admin'), ('chris', 'chris') ]: io.write('%s:%s\n' % (name, password)) io.seek(0) def cleartext_check(password, hashed): return password == hashed htpasswd = HTPasswdPlugin(io, cleartext_check) basicauth = BasicAuthPlugin('repoze.who') auth_tkt = AuthTktCookiePlugin('secret', 'auth_tkt') form = FormPlugin('__do_login', rememberer_name='auth_tkt') form.classifications = { IIdentifier:['browser'], IChallenger:['browser'] } # only for browser identifiers = [('form', form),('auth_tkt',auth_tkt),('basicauth',basicauth)] authenticators = [('htpasswd', htpasswd)] challengers = [('form',form), ('basicauth',basicauth)] mdproviders = [] from repoze.who.classifiers import default_request_classifier from repoze.who.classifiers import default_challenge_decider log_stream = None import logging import os, sys log_stream = sys.stdout
# -*- coding: utf-8 -*- ############################################################################## # # Copyright (c) 2009, Gustavo Narea <*****@*****.**>. # All Rights Reserved. # # This software is subject to the provisions of the BSD-like license at # http://www.repoze.org/LICENSE.txt. A copy of the license should accompany # this distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL # EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, # THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND # FITNESS FOR A PARTICULAR PURPOSE. # ############################################################################## """ Miscellaneous definitions used in the configuration files in the fixture. """ from repoze.who.plugins.form import FormPlugin form_plugin = FormPlugin("foo", "bar")
def make_test_middleware(app, global_conf): """ Functionally equivalent to [plugin:form] use = repoze.who.plugins.form.FormPlugin rememberer_name = cookie login_form_qs=__do_login [plugin:cookie] use = repoze.who.plugins.cookie:InsecureCookiePlugin cookie_name = oatmeal [plugin:basicauth] use = repoze.who.plugins.basicauth.BasicAuthPlugin realm = repoze.who [plugin:htpasswd] use = repoze.who.plugins.htpasswd.HTPasswdPlugin filename = <...> check_fn = repoze.who.plugins.htpasswd:crypt_check [general] request_classifier = repoze.who.classifiers:default_request_classifier challenge_decider = repoze.who.classifiers:default_challenge_decider [identifiers] plugins = form:browser cookie basicauth [authenticators] plugins = htpasswd [challengers] plugins = form:browser basicauth """ # be able to test without a config file from repoze.who.plugins.basicauth import BasicAuthPlugin from repoze.who.plugins.auth_tkt import AuthTktCookiePlugin from repoze.who.plugins.cookie import InsecureCookiePlugin from repoze.who.plugins.form import FormPlugin from repoze.who.plugins.htpasswd import HTPasswdPlugin io = StringIO() salt = 'aa' for name, password in [ ('admin', 'admin'), ('chris', 'chris') ]: io.write('%s:%s\n' % (name, password)) io.seek(0) def cleartext_check(password, hashed): return password == hashed #pragma NO COVERAGE htpasswd = HTPasswdPlugin(io, cleartext_check) basicauth = BasicAuthPlugin('repoze.who') auth_tkt = AuthTktCookiePlugin('secret', 'auth_tkt') cookie = InsecureCookiePlugin('oatmeal') form = FormPlugin('__do_login', rememberer_name='auth_tkt') form.classifications = { IIdentifier:['browser'], IChallenger:['browser'] } # only for browser identifiers = [('form', form),('auth_tkt',auth_tkt),('basicauth',basicauth)] authenticators = [('htpasswd', htpasswd)] challengers = [('form',form), ('basicauth',basicauth)] mdproviders = [] from repoze.who.classifiers import default_request_classifier from repoze.who.classifiers import default_challenge_decider log_stream = None import os if os.environ.get('WHO_LOG'): log_stream = sys.stdout middleware = PluggableAuthenticationMiddleware( app, identifiers, authenticators, challengers, mdproviders, default_request_classifier, default_challenge_decider, log_stream = log_stream, log_level = logging.DEBUG ) return middleware