So .. I just spent way too much time figuring out why my django-rest-framework did not work with authentication enabled .. As usual turns out it was simple: the culprit was mod_wsgi and it's default settings:
All I had to do was set this option in my apache config:
WSGIPassAuthorization On
before that I kept getting this error: {"detail":"Authentication credentials were not provided."}
Who would've thought that was Off by default .. also it seems to be a good idea to pass --basic
with --user <user>:<pwd>
with curl to make sure it uses basic auth.
On the plus side I did also look into Token based auth for the django rest framework which I find to be more useful than basic auth when using from RESTEasy
One thing about RESTEasy & Token based auth is that one needs to set the header manually (the instad of providing auth=('user','pwd')
to resteasy.RESTEasy(...)
so it goes something like this:
from resteasy import RESTEasy, jsonShare on Twitter Share on Facebook
api = RESTEASY(base_url=<baseurl>, encoder=json.dumps, decoder=json.loads, <other options as needed>)
api.session.headers['Authorization'] = 'Token <token>'
data = api.route('bla/')
...
Comments
There are currently no comments
New Comment