Hello guest, if you read this it means you are not registered. Click here to register in a few simple steps, you will enjoy all features of our Forum.
Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Uninitialized ASN.1 value in Flask LDAP3 Auth blueprint
#1
I'm trying to put together a flask blueprint for LDAP3 auth. I started out with a standard flask app and that works fine but as soon as I turn it into a blueprint, it fails to work as expected.

Here's the debug output when I run the flask app

Output:
DEBUG:root:Validating LDAPLoginForm against LDAP DEBUG:flask_ldap3_login:Opening connection with bind user 'XXXX@XXXX.COM' DEBUG:flask_ldap3_login:Successfully bound to LDAP as 'XXXX@XXXX.COM' for search_bind method DEBUG:flask_ldap3_login:Performing an LDAP Search using filter '(&(objectclass=person)(sAMAccountName=YYYY))', base 'ou=Users,ou=XXXX,dc=XXXX,dc=COM', and scope 'SUBTREE' DEBUG:flask_ldap3_login:Opening connection with bind user 'CN=YYYY,OU=Admin Users,OU=Users,OU=XXXX,DC=XXXX,DC=COM' DEBUG:flask_ldap3_login:Directly binding a connection to a server with user:'CN=YYYY,OU=Admin Users,OU=Users,OU=XXXX,DC=XXXX,DC=COM' DEBUG:flask_ldap3_login:Authentication was successful for user 'YYYY'
And here's the debug output when run as a blueprint

Output:
DEBUG:root:Validating LDAPLoginForm against LDAP DEBUG:flask_ldap3_login:Opening connection with bind user 'XXXX@XXXX.COM' DEBUG:flask_ldap3_login:Destroying connection at <0x7f181f9ee2b0> ERROR:flask_ldap3_login:Uninitialized ASN.1 value ("__len__" attribute looked up)
My __init__.py looks like this:

from flask import Flask

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

from app.ldauth.views import auth_blueprint
app.register_blueprint(auth_blueprint)
And app/ldauth/views.py looks like this:

from flask import Flask, Blueprint, url_for
from flask_ldap3_login import LDAP3LoginManager
from flask_login import LoginManager, login_user, UserMixin, current_user
from flask import render_template_string, render_template, redirect
from flask_ldap3_login.forms import LDAPLoginForm
from app import app

auth_blueprint = Blueprint('ldauth',__name__,template_folder='templates')

login_manager = LoginManager(app)              
ldap_manager = LDAP3LoginManager(app)          
users = {}

class User(UserMixin):
    def __init__(self, dn, username, data):
        self.dn = dn
        self.username = username
        self.data = data

    def __repr__(self):
        return self.dn

    def get_id(self):
        return self.dn

@login_manager.user_loader
def load_user(id):
    if id in users:
        return users[id]
    return None


@ldap_manager.save_user
def save_user(dn, username, data, memberships):
    user = User(dn, username, data)
    users[dn] = user
    return user

@auth_blueprint.route('/login', methods=['GET', 'POST'])
def login():
    template = """
    {{ get_flashed_messages() }}
    {{ form.errors }}
    <form method="POST">
        <label>Username{{ form.username() }}</label>
        <label>Password{{ form.password() }}</label>
        {{ form.submit() }}
        {{ form.hidden_tag() }}
    </form>
    """

    # Instantiate a LDAPLoginForm which has a validator to check if the user
    # exists in LDAP.

    form = LDAPLoginForm()

    if form.validate_on_submit():
        # Successfully logged in, We can now access the saved user object
        # via form.user.
        login_user(form.user)  # Tell flask-login to log them in.

        # TODO: Validate next to ensure it is safe!
        return redirect(next)  # Send them home

    return render_template_string(template,form=form)
Fairly inexperienced with python so maybe I am just doing something fundamentally wrong here. Any suggestions?
Quote
#2
Turns out this was environment related, created a new virtualenv this morning, deployed the code into that and everything is working as expected.
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  show csv file in flask template.html rr28rizal 5 160 Nov-12-2017, 01:53 PM
Last Post: rr28rizal
  Insert data to SQL through pymysql and flask iainstott 3 101 Oct-24-2017, 03:04 PM
Last Post: iainstott
  How to install flask boostrap? Peter_EU 3 104 Oct-22-2017, 05:09 PM
Last Post: Larz60+
  (beginner): Hello Shopping - wat?(Flask) Peter_EU 2 118 Oct-20-2017, 07:32 PM
Last Post: Peter_EU
  starting with flask: code does not work Peter_EU 2 126 Oct-20-2017, 05:35 PM
Last Post: Peter_EU
  Flask Flash Messages Blank Leaf 2 102 Oct-16-2017, 10:19 PM
Last Post: Leaf
  how to place Flask code on a public web server rarevesselt 6 444 Oct-04-2017, 07:32 AM
Last Post: rarevesselt
  Tornado / Flask help needed jogl 2 198 Aug-27-2017, 10:21 PM
Last Post: jogl
  How do I fetch values from db to Select Options using Flask? progShubham 2 249 Jul-25-2017, 05:52 PM
Last Post: nilamo
  How can I add search in flask-admin? Mike Ru 4 1,138 Feb-13-2017, 06:36 PM
Last Post: nilamo

Forum Jump:


Users browsing this thread: 1 Guest(s)