12 messages in com.googlegroups.pylons-discussRe: AuthKit problems| From | Sent On | Attachments |
|---|---|---|
| enrico secco | 17 Dec 2007 02:58 | |
| Mike Orr | 17 Dec 2007 12:10 | |
| Lythoner LY | 18 Dec 2007 18:39 | |
| James Gardner | 19 Dec 2007 13:45 | |
| enrico secco | 20 Dec 2007 02:27 | |
| Lythoner LY | 20 Dec 2007 10:54 | .py |
| James Gardner | 20 Dec 2007 12:58 | |
| James Gardner | 20 Dec 2007 13:11 | |
| Adam Ryan | 25 Jan 2008 13:55 | |
| n1ywb | 13 Feb 2008 13:33 | |
| n1ywb | 14 Feb 2008 09:47 | |
| n1ywb | 14 Feb 2008 10:53 |
| Subject: | Re: AuthKit problems![]() |
|---|---|
| From: | n1ywb (jeff...@public.gmane.org) |
| Date: | 02/14/2008 10:53:27 AM |
| List: | com.googlegroups.pylons-discuss |
I was able to resolve the crazy URL issue by downgrading authkit from r144 to r139, apparently the new construct_url() method doesn't work. Now at long last, database authentication seems to be working.
pylons@nibbler:~/AuthKit$ svn log -r 144 ------------------------------------------------------------------------ r144 | thejimmyg | 2008-01-09 12:14:19 -0800 (Wed, 09 Jan 2008) | 1 line
Added an alternative construct_url() method
On Feb 14, 9:47 am, n1ywb
<jeff...@public.gmane.org> wrote:
OK I've made some progress.
Previously I had simply copied sqlalchemy_04_driver.py into my existing authkit 0.4 directory. It ocurred to me that maybe that wasn't the way to do it. I checked out the latest AuthKit from SVN, edited setup.py to use setuptools, and installed the egg. That resolved the exception I was reporting previously.
Now websetup.py works, I can successfully add users/roles etc. I did have to tweak the example code somewhat, and I'm still not happy with the way it's setting up the environ variable explicitly, isn't that supposed to be in app_conf or something?
Actual authentication ALMOST works but not quite. When I go to a protected controller, AuthKit displays the sign in page correctly, but when I submit my info it redirects to a crazy URL.
I've created a controller called "auth" with a method called "private" that is protected by an @authorize decorator. When I load "http:// localhost:5000/auth/private" in my browser, I see the AuthKit sign in form. When I enter info and click submit, regardless of what info I enter, I am redirected to this URL: "http://localhost:5000/auth/:// localhosthttps://localhost:5000/auth/private". There's something screwy going on around here...
On Feb 13, 1:33 pm, n1ywb
<jeff...@public.gmane.org> wrote:
Hi James,
I followed the given example and I'm getting "AttributeError: 'str' object has no attribute 'has_key'" but when I try to set up the authkit middleware in middleware.py.
It might be helpful if you could develop an sqlalchemy_04_driver example that actually uses Pylons...
In a slight aside, is there any reason why I can't use your SQLAlchemyManager thing for AuthKit and use a normal session for my own stuff at the same time?
Here's what I have:
# middleware.py from authkit.users import sqlalchemy_04_driver import authkit.authenticate
from authtest.model import setup_model from sqlalchemymanager import SQLAlchemyManager ... # AuthKit app = SQLAlchemyManager(app, app_conf, [setup_model, sqlalchemy_04_driver.setup_model]) app = authkit.authenticate.middleware(app, app_conf) ...
# development.ini ... # sqlalchemy bitches if I use default.url #sqlalchemy.default.url = sqlite:///%(here)s/quickwiki.db sqlalchemy.url = sqlite:///%(here)s/quickwiki.db
authkit.setup.method = form, cookie authkit.cookie.secret = secret string authkit.cookie.signoutpath = /auth/signout authkit.form.authenticate.user.type = authkit.users.sqlalchemy_04_driver:UsersFromDatabase authkit.form.authenticate.user.data = authtest.model ...
# model/__init__.py def setup_model(model, metadata, **p): pass
pylons@nibbler:~/authtest$ paster serve --reload development.ini Starting subprocess with file monitor Traceback (most recent call last): File "/home/pylons/bin/paster", line 8, in <module> load_entry_point('PasteScript==1.3.6', 'console_scripts', 'paster') () File "/home/pylons/lib/python2.5/site-packages/PasteScript-1.3.6- py2.5.egg/paste/script/command.py", line 78, in run invoke(command, command_name, options, args[1:]) File "/home/pylons/lib/python2.5/site-packages/PasteScript-1.3.6- py2.5.egg/paste/script/command.py", line 117, in invoke exit_code = runner.run(args) File "/home/pylons/lib/python2.5/site-packages/PasteScript-1.3.6- py2.5.egg/paste/script/command.py", line 212, in run result = self.command() File "/home/pylons/lib/python2.5/site-packages/PasteScript-1.3.6- py2.5.egg/paste/script/serve.py", line 227, in command relative_to=base, global_conf=vars) File "/home/pylons/lib/python2.5/site-packages/PasteScript-1.3.6- py2.5.egg/paste/script/serve.py", line 250, in loadapp **kw) File "/home/pylons/lib/python2.5/site-packages/PasteDeploy-1.3.1- py2.5.egg/paste/deploy/loadwsgi.py", line 193, in loadapp return loadobj(APP, uri, name=name, **kw) File "/home/pylons/lib/python2.5/site-packages/PasteDeploy-1.3.1- py2.5.egg/paste/deploy/loadwsgi.py", line 214, in loadobj return context.create() File "/home/pylons/lib/python2.5/site-packages/PasteDeploy-1.3.1- py2.5.egg/paste/deploy/loadwsgi.py", line 606, in create return self.object_type.invoke(self) File "/home/pylons/lib/python2.5/site-packages/PasteDeploy-1.3.1- py2.5.egg/paste/deploy/loadwsgi.py", line 99, in invoke return fix_call(context.object, context.global_conf, **context.local_conf) File "/home/pylons/lib/python2.5/site-packages/PasteDeploy-1.3.1- py2.5.egg/paste/deploy/util/fixtypeerror.py", line 57, in fix_call val = callable(*args, **kw) File "/home/pylons/authtest/authtest/config/middleware.py", line 54, in make_app app = authkit.authenticate.middleware(app, app_conf) File "/home/pylons/lib/python2.5/site-packages/AuthKit-0.4.0- py2.5.egg/authkit/authenticate/__init__.py", line 452, in middleware prefix=prefix_, File "/home/pylons/lib/python2.5/site-packages/AuthKit-0.4.0- py2.5.egg/authkit/authenticate/form.py", line 131, in make_form_handler prefix='authkit.method.form', File "/home/pylons/lib/python2.5/site-packages/AuthKit-0.4.0- py2.5.egg/authkit/authenticate/form.py", line 114, in load_form_config format='basic' File "/home/pylons/lib/python2.5/site-packages/AuthKit-0.4.0- py2.5.egg/authkit/authenticate/__init__.py", line 191, in get_authenticate_function users = user_object(user_conf['data'], encrypt) File "/home/pylons/lib/python2.5/site-packages/AuthKit-0.4.0- py2.5.egg/authkit/users/sqlalchemy_04_driver.py", line 100, in __init__ if not environ.has_key('sqlalchemy.model') or not environ.has_key('sqlalchemy.session'): AttributeError: 'str' object has no attribute 'has_key'
On Dec 20 2007, 1:11 pm, James Gardner
<ja.....@public.gmane.org> wrote:
Hi Enrico,
Now the it seems that the 'sqlalchemy_04_driver' have some problem with 'environ' object.
Ahh, you've been caught out by the different API used by the 0.4 driver. The first argument with the new API should be the WSGI environment. I can see why this doesn't quite work in the way you were expecting. If you do want to use this driver you'll need to setup the SQLAlchemyMiddleware first like this example does:
Note this isn't the currently recommended way of using SQLAlchemy with Pylons, it is just the one I happen to like.
You might be better off with Lythoner's version perhaps if that works for you?
Cheers,
James





.py