Beispiel #1
0
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,
    }
Beispiel #2
0
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
Beispiel #3
0
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

Beispiel #5
0
# -*- 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")
Beispiel #6
0
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