Exemple #1
0
    def create_app(self):
        app = flask.Flask(__name__)
        LDAP = dict(BIND_DN='x=%(username)s')
        app.config.update(LDAP=LDAP)
        app.config['SECRET_KEY'] = 'abc123'

        mgr = LDAPLoginManager(app)
        mgr.save_user(self.save_user)
        return app
    def create_app(self):
        app = flask.Flask(__name__)
        LDAP = dict(BIND_DN='x=%(username)s')
        app.config.update(LDAP=LDAP)
        app.config['SECRET_KEY'] = 'abc123'

        mgr = LDAPLoginManager(app)
        mgr.save_user(self.save_user)
        return app
    def test_direct_bind_keymap(self):

        LDAP = dict(BIND_DN="x=%(username)s", KEY_MAP={"transformed_key": "key"})
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.direct_bind("user1", "pass1")
        self.assertIsNotNone(result)
        self.assertEqual(result, {"transformed_key": "value1"})
    def test_direct_bind_keymap(self):

        LDAP = dict(BIND_DN='x=%(username)s', KEY_MAP={'transformed_key':'key'})
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.direct_bind('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {'transformed_key': 'value1'})
    def test_direct_bind(self):
        LDAP = dict(BIND_DN="x=%(username)s")
        self.app.config.update(LDAP=LDAP)
        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.direct_bind("username", "password")
        self.assertIsNone(result)

        result = loginmanager.direct_bind("user1", "pass1")
        self.assertIsNotNone(result)
        self.assertEqual(result, {"key": "value1", "uid": "user1"})
    def test_direct_bind_keymap(self):

        LDAP = dict(BIND_DN='x=%(username)s',
                    KEY_MAP={'transformed_key': 'key'})
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.direct_bind('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {'transformed_key': 'value1'})
Exemple #7
0
    def create_app(self):
        app = flask.Flask(__name__)
        app.config['DEBUG'] = True
        app.config['TESTING'] = True
        app.config['WTF_CSRF_ENABLED'] = False
        ldap_dict = dict(BIND_DN='x=%(username)s')
        app.config.update(LDAP=ldap_dict)
        app.config['SECRET_KEY'] = 'abc123'

        mgr = LDAPLoginManager(app)
        mgr.save_user(self.save_user)
        return app
    def test_direct_bind(self):
        LDAP = dict(BIND_DN='x=%(username)s')
        self.app.config.update(LDAP=LDAP)
        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.direct_bind('username', 'password')
        self.assertIsNone(result)

        result = loginmanager.direct_bind('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {'dn': 'x=user1', 'key': 'value1', 'uid': 'user1'})
    def test_bind_search_keymap(self):

        LDAP = dict(BIND_DN='x=user1', BIND_AUTH='pass1',
                    USER_SEARCH=[{'base':'base', 'filter':'uid=%(username)s'}],
                    KEY_MAP={'transformed_key':'key'})
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.bind_search('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {'transformed_key': 'value1'})
    def test_bind_search_keymap(self):

        LDAP = dict(
            BIND_DN="x=user1",
            BIND_AUTH="pass1",
            USER_SEARCH=[{"base": "base", "filter": "uid=%(username)s"}],
            KEY_MAP={"transformed_key": "key"},
        )
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.bind_search("user1", "pass1")
        self.assertIsNotNone(result)
        self.assertEqual(result, {"transformed_key": "value1"})
    def test_bind_search(self):
        """
        This test will fail with out the pull request
        https://github.com/ContinuumIO/flask-ldap-login/pull/6 
        """
        LDAP = dict(BIND_DN="x=user1", BIND_AUTH="pass1", USER_SEARCH=[{"base": "base", "filter": "uid=%(username)s"}])
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.bind_search("user1", "pass2")
        self.assertIsNone(result)

        result = loginmanager.bind_search("user1", "pass1")
        self.assertIsNotNone(result)
        self.assertEqual(result, {"key": "value1", "uid": "user1"})
    def test_bind_search_keymap(self):

        LDAP = dict(BIND_DN='x=user1',
                    BIND_AUTH='pass1',
                    USER_SEARCH=[{
                        'base': 'base',
                        'filter': 'uid=%(username)s'
                    }],
                    KEY_MAP={'transformed_key': 'key'})
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.bind_search('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {'transformed_key': 'value1'})
    def test_bind_search(self):
        """
        This test will fail with out the pull request
        https://github.com/ContinuumIO/flask-ldap-login/pull/6 
        """
        LDAP = dict(BIND_DN='x=user1', BIND_AUTH='pass1',
                    USER_SEARCH=[{'base':'base', 'filter':'uid=%(username)s'}])
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.bind_search('user1', 'pass2')
        self.assertIsNone(result)

        result = loginmanager.bind_search('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {'dn': 'x=user1', 'key': 'value1', 'uid': 'user1'})
Exemple #14
0
    def test_bind_search(self):
        """
        This test will fail with out the pull request
        https://github.com/ContinuumIO/flask-ldap-login/pull/6 
        """
        LDAP = dict(BIND_DN='x=user1',
                    BIND_AUTH='pass1',
                    USER_SEARCH=[{
                        'base': 'base',
                        'filter': 'uid=%(username)s'
                    }])
        self.app.config.update(LDAP=LDAP)

        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.bind_search('user1', 'pass2')
        self.assertIsNone(result)

        result = loginmanager.bind_search('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {
            'dn': 'x=user1',
            'key': 'value1',
            'uid': 'user1'
        })
    def test_direct_bind(self):
        LDAP = dict(BIND_DN='x=%(username)s')
        self.app.config.update(LDAP=LDAP)
        loginmanager = LDAPLoginManager(self.app)
        loginmanager.connect()

        result = loginmanager.direct_bind('username', 'password')
        self.assertIsNone(result)

        result = loginmanager.direct_bind('user1', 'pass1')
        self.assertIsNotNone(result)
        self.assertEqual(result, {'key': 'value1', 'uid': 'user1'})
    # Map ldap keys into application specific keys
    'KEY_MAP': {
        'name': 'cn',
        'company': 'o',
        'location': 'l',
        'email': 'mail',
    },
}

#===============================================================================
# Import existing application
#===============================================================================
from examples.base_app import app, User

app.config.update(LDAP=LDAP)
ldap_mgr = LDAPLoginManager(app)

# Store users in memory
users = {}


@ldap_mgr.save_user
def save_user(username, userdata):
    users[username] = User(username, userdata)
    return users[username]


@app.route('/ldap/login', methods=['GET', 'POST'])
def ldap_login():

    form = LDAPLoginForm(request.form)
Exemple #17
0
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from flask_ldap_login import LDAPLoginManager

app = Flask(__name__)
app.config.from_object('config')

db = SQLAlchemy(app)
login_manager = LoginManager()
login_manager.init_app(app)

ldap_mgr = LDAPLoginManager()
ldap_mgr.init_app(app)

from webapp import views