Pylons und Authkit OpenID -Problem
Frage
Ich habe Probleme, die Unterstützung für die OpenID -Authentifizierung mit AuthKit und Pylons einzurichten. Ich habe alles wie in der beschrieben eingerichtet Kochbuch, aber immer noch den folgenden Fehler erhalten:
File "/usr/lib/python2.6/dist-packages/authkit/authenticate/open_id.py", line 480, in __call__
return self.app(environ, start_response)
File "/usr/lib/python2.6/dist-packages/authkit/authenticate/open_id.py", line 218, in __call__
self.session_middleware
AuthKitConfigError: The session middleware 'beaker.session' is not present. Have you set up the session middleware?
(Das vollständige Traceback ist ziemlich uninformativ, nur eine Kette von Middleware -Aufrufen)
Meine Konfiguration ist die folgende:
authkit.setup.method = openid, cookie
# TODO authkit.openid.template.file =
authkit.cookie.params.httponly = true
authkit.openid.store.type = file
authkit.openid.store.config = %(here)s/data
authkit.openid.session.middleware = beaker.session
authkit.openid.session.key = authkit_openid
authkit.openid.baseurl = http://mysite.moc
authkit.openid.path.signedin = /main/cabinet
authkit.openid.authenticate.user.encrypt = authkit.users:md5
Die Beaker Middleware ist definitiv geladen. Hier ist meine MAKE_APP -Funktion (ja, die Pylons -Versionsprüfung ist wahr):
| # Configure the Pylons environment
| load_environment(global_conf, app_conf)
|
| # The Pylons WSGI app
| app = PylonsApp()
| app = UserMiddleware(app)
|
| if pylons.__version__ >= "0.9.7":
|- from beaker.middleware import SessionMiddleware
|| from routes.middleware import RoutesMiddleware
|| app = RoutesMiddleware(app, config['routes.map'])
|| app = SessionMiddleware(app, app_conf)
|
|
| if asbool(full_stack):
| # Handle Python exceptions
|
|- app = authkit.authenticate.middleware(app, app_conf)
|| # Display error documents for 401, 403, 404 status codes (and
|| # 500 when debug is disabled)
|| if pylons.__version__ >= "0.9.7":
||- app = ErrorHandler(app, global_conf,
23- **config['pylons.errorware'])
||| from pylons.middleware import StatusCodeRedirect
||| if asbool(config['debug']):
23- app = StatusCodeRedirect(app)
||| else:
23- app = StatusCodeRedirect(app, [401, 403, 404, 500])
|| else:
||- app = ErrorHandler(app, global_conf, error_template = error_template,
23- **config['pylons.errorware'])
||| app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf)
|
| # Establish the Registry for this application
| app = RegistryManager(app)
|
| # Static files
| javascripts_app = StaticJavascripts()
| static_app = StaticURLParser(config['pylons.paths']['static_files'])
| app = Cascade([static_app, javascripts_app, app])
| return app
Hat jemand eine Idee, was ist hier los?
Lösung
Nehmen Sie diese Zeile in Ihre Middleware.py:
app = authkit.authenticate.middleware(app, app_conf)
Und bewegen Sie es unmittelbar unter dieser Zeile:
app = PylonsApp()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow