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:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Uninitialized ASN.1 value in Flask LDAP3 Auth blueprint
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

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

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__)

from app.ldauth.views import 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

def load_user(id):
    if id in users:
        return users[id]
    return None

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() }}

    # 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?
Turns out this was environment related, created a new virtualenv this morning, deployed the code into that and everything is working as expected.

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  General advice web application - flask - database - cms bashage 6 329 Jan-31-2018, 06:07 PM
Last Post: frostbite
  python3 + Flask + SQLite = HTTP 400 supertoy 5 234 Jan-30-2018, 02:13 PM
Last Post: supertoy
  show csv file in flask template.html rr28rizal 5 2,089 Nov-12-2017, 01:53 PM
Last Post: rr28rizal
  Insert data to SQL through pymysql and flask iainstott 3 613 Oct-24-2017, 03:04 PM
Last Post: iainstott
  How to install flask boostrap? Peter_EU 3 454 Oct-22-2017, 05:09 PM
Last Post: Larz60+
  (beginner): Hello Shopping - wat?(Flask) Peter_EU 2 375 Oct-20-2017, 07:32 PM
Last Post: Peter_EU
  starting with flask: code does not work Peter_EU 2 318 Oct-20-2017, 05:35 PM
Last Post: Peter_EU
  Flask Flash Messages Blank Leaf 2 417 Oct-16-2017, 10:19 PM
Last Post: Leaf
  how to place Flask code on a public web server rarevesselt 6 950 Oct-04-2017, 07:32 AM
Last Post: rarevesselt
  Tornado / Flask help needed jogl 2 506 Aug-27-2017, 10:21 PM
Last Post: jogl

Forum Jump:

Users browsing this thread: 1 Guest(s)