If Nginx is used, this should help:
proxy_set_header HTTP_AUTHORIZATION $http_authorization;
On Friday, February 16, 2018 at 2:57:03 AM UTC+3, Anatoli Hristov wrote:
>
> Did anyone got it working? I have exact same problem.
>
> Any help?
>
> Thanks
>
>
> On Tuesday, 16 October 2012 23:50:33 UTC+2, Adi wrote:
>>
>>
>> If this is of any help, I tried tracing basic login in tools.py, and
>> figured out variable "basic" never gets value from
>> current.request.env.http_authorization, so username and password never get
>> passed through.
>>
>> On the local server, that value gets populated and basic login works as
>> expected... If anyone can share any advice where else to look for a
>> problem, please do. Sorry for going crazy here :)
>>
>> tools.py
>>
>> def basic(self):
>> """
>> perform basic login.
>> reads current.request.env.http_authorization
>> and returns basic_allowed,basic_accepted,user
>> """
>> if not self.settings.allow_basic_login:
>> return (False,False,False)
>> basic = current.request.env.http_authorization
>> if not basic or not basic[:6].lower() == 'basic ':
>> return (True, False, False)
>> (username, password) = base64.b64decode(basic[6:]).split(':')
>> return (True, True, self.login_bare(username, password))
>>
>>
>>
>> On Wednesday, October 10, 2012 10:46:54 AM UTC-4, Adi wrote:
>>>
>>> This is an example from book, where authentication and posting into
>>> database work good on a local server.
>>>
>>> Once I moved the code to production redhat linux server, where we have
>>> routes.py as bellow all I get as result is a login redirect:
>>> You are being redirected <a href=
>>> "/user/login?_next=/webservices/api/customer.json%3FFirstName%3DTim5%26LastName%3DJson"
>>> >here</a>
>>>
>>> If I remove authentication (@auth.requires_login() and
>>> @auth.requires_permission('insert customer through webservice')) on
>>> production server, records are inserted properly.
>>>
>>> Tried adding default and webservices controllers into application
>>> specific routes.py, but it didn't help.
>>>
>>> Any suggestions what should I do?
>>>
>>> Thanks,
>>> Adnan
>>>
>>> tried in both, default.py and webservices.py controllers:
>>>
>>> auth.settings.allow_basic_login = True
>>> @auth.requires_login()
>>> @auth.requires_permission('insert customer through webservice')
>>> @request.restful()
>>> def api():
>>> response.view = 'generic.'+request.extension
>>>
>>> def GET(*args,**vars):
>>> patterns = [
>>> "/members[customer]",
>>> "/member_fn/{customer.FirstName.startswith}",
>>> "/member_ln/{customer.LastName.startswith}",
>>> "/member/{customer.FirstName}/:field",
>>>
>>> "/member/{customer.FirstName}/orders[customer_order.customer_id]",
>>>
>>> "/member/{customer.FirstName}/order[customer_order.customer_id]/{
>>> customer_order.id}",
>>>
>>> "/member/{customer.FirstName}/order[customer_order.customer_id]/{
>>> customer_order.id}/:field"
>>> ]
>>> parser = db.parse_as_rest(patterns,args,vars)
>>> if parser.status == 200:
>>> return dict(content=parser.response)
>>> else:
>>> raise HTTP(parser.status,parser.error)
>>> def POST(table_name,**vars):
>>> if table_name == 'customer':
>>> return db.customer.validate_and_insert(**vars)
>>> elif table_name == 'customer_order':
>>> return db.customer_order.validate_and_insert(**vars)
>>> else:
>>> raise HTTP(400)
>>> return locals()
>>>
>>>
>>>
>>>
>>>
>>> web2py folder: routes.py
>>> routers = dict(
>>> # base router
>>> BASE = dict(
>>> default_application = 'welcome', domains = {'crm.domain.com':
>>> 'crm' }
>>> ),
>>> )
>>>
>>>
>>>
>>> crm app folder: routes.py (deleted)
>>>
>>>
>>> Terminal test:
>>>
>>>
>>> asm21:~ adnan$ curl --user [email protected]:pass -d
>>> "FirstName=Tim5&LastName=Json" http://crm.domain.com/api/customer.json
>>> Result: You are being redirected <a href=
>>> "/user/login?_next=/api/customer.json%3FFirstName%3DTim5%26LastName%3DJson"
>>> >here</a>
>>>
>>> asm21:~ adnan$ curl --user [email protected]:pass -d
>>> "FirstName=Tim5&LastName=Json" http://crm.domain.com/webservices/api/
>>> customer.json
>>> Result: You are being redirected <a href=
>>> "/user/login?_next=/webservices/api/customer.json%3FFirstName%3DTim5%26LastName%3DJson"
>>> >here</a>
>>>
>>>
>>>
>>>
>>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.