Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python /Flask Login with LDAP Auth
#1
I have Python/Flask application with a login screen. My goal is to utilize LDAP authentication in unison with my Python/Flask app.

The issue that i am running into is this: " raise RuntimeError('The session is unavailable because no secret ' RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret." I have a secret key and i still get the error same error when i comment it out.

Here is my code:
import token
from flask import Flask, session
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.login import LoginManager

app = Flask(name)
app.secret_key = 'welfhwdlhwdlfhwelfhwlehfwlehfelwehflwefwlehflwefhlwefhlewjfhwelfjhweflhweflhwel'
app.config['SESSION_TYPE'] = 'filesystem'
app.config['LDAP_AUTH_SERVER'] = 'LDAPLocation.com'
app.config['LDAP_PORT'] = '636'
app.config['LDAP_TOP_DN'] = 'CN=something here,OU=somethingHere,OU=SomeService Accounts,dc=magic,dc=pumpum,DC=com Xe'
app.config['LDAP_BIND_USER_PASSWORD'] = 'pssword'
app.register_blueprint(token, url_prefix='/auth')

db = SQLAlchemy(app)

login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'

from app.auth.views import auth

app.register_blueprint(auth)

Thank you in advance....
Reply
#2
What's the whole traceback message?
Reply
#3
see reply
Reply
#4
(Apr-16-2018, 12:35 PM)pythonnubie Wrote: see reply

Traceback (most recent call last):
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\e751975\PythonApp\venv\login\app.py", line 21, in do_admin_login
flash('wrong password!')
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\helpers.py", line 387, in flash
session['_flashes'] = flashes
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\werkzeug\local.py", line 350, in __setitem__
self._get_current_object()[key] = value
File "C:\Users\e751975\PythonApp\venv\lib\site-packages\flask\sessions.py", line 130, in _fail
raise RuntimeError('The session is unavailable because no secret '
RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret.
Reply
#5
Alright, after looking through the source, it looks like the LoginManager doesn't actually manage the session itself, it only adds some things on top of it. So you still need to let Flask know what sort of session management you're using.

https://github.com/pallets/flask/blob/ma...ns.py#L124 Wrote:If :meth:open_session returns None Flask will call into
:meth:make_null_session to create a session that acts as replacement
if the session support cannot work because some requirement is not
fulfilled. The default :class:NullSession class that is created
will complain that the secret key was not set.

To replace the session interface on an application all you have to do
is to assign :attr:flask.Flask.session_interface::
app = Flask(__name__)
app.session_interface = MySessionInterface()
That's the error you're getting, which leads me to believe this is an easy fix.

After you create your app, but before running it, try adding this line, and let's see if that fixes it (or at least gives a different error): app.session_interface = session.SecureCookieSessionInterface()
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Flask login help dangermaus33 0 1,577 Dec-07-2020, 04:06 PM
Last Post: dangermaus33
  python 3.7 on windows using flask and flask-sqlalchemy. Alpy 2 3,943 Aug-12-2020, 07:24 PM
Last Post: Alpy
  Python Webscraping with a Login Website warriordazza 0 2,571 Jun-07-2020, 07:04 AM
Last Post: warriordazza
  [Flask]After login page is not redirecting me to dashboard shockwave 0 2,657 May-07-2020, 05:22 PM
Last Post: shockwave
  How to perform a successful login(signin) through Requests in Python Kalet 1 2,303 Apr-24-2020, 01:44 AM
Last Post: Larz60+
  Google calendar pthon flask auth Kireta 0 2,046 Sep-16-2019, 04:50 PM
Last Post: Kireta
  Python-selenium script for automated web-login does not work hectorKJ 2 3,982 Sep-10-2019, 01:29 PM
Last Post: buran
  HOWTO? Login DSL Modem with Python Requests: need Click "Apply" Button Webtest 4 8,405 Aug-20-2019, 04:03 PM
Last Post: johnmina
  Flask tutorial errors in jinja, auth undefined Ecniv 2 2,450 May-03-2019, 02:04 PM
Last Post: Ecniv
  Problem enabling http auth in a route nikos 2 2,737 Mar-02-2019, 01:13 PM
Last Post: nikos

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020