On Wednesday, September 4, 2013 2:45:15 AM UTC-7, Michele Comitini wrote:
>
> You can use a modified call() action:
> def call_w_auth():
>     """
>     exposes services. for example:
>     http://..../[app]/default/call/jsonrpc
>     decorate with @services.jsonrpc the functions to expose
>     supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
>     """
>     auth.settings.allow_basic_login = True
>     auth.basic(basic_auth_realm='any realm is fine')
>     return service()
>
> @service.soap('MyFunction',returns={'result':int},args={'a':int,'b':int,})
>             def myfunction(a, b):
>                 return a + b
>             def call():
>                 return service()
>
> Call it with:
>
>             from gluon.contrib.pysimplesoap.client import SoapClient
>             client = 
> SoapClient(wsdl="http://..../app/mycontroller/call_w_auth/soap?WSDL";)
>             response = client.MyFunction(a=1,b=2)
>             return response['result']
>
>
Okay, thank you.

/dps

 

>
> 2013/9/4 Dave S <[email protected] <javascript:>>
>
>> I'm a newbie to web2py, but the book examples have gotten me a long ways, 
>> and the forum (GG) has helped, also.  
>>
>> I have set up a pretty simple SOAP service, and have turned on Basic 
>> AUTH.  I get the correct results when the client provides the correct 
>> header, so all that's good.  But I'd like to return HTTP 401 (Unauthorized) 
>> instead of HTTP 303 (See Other) if the header is missing or incorrect. 
>>  What's the best way to do this?  Should I give up the 
>> "auth.requires_login" decorator on my call() controller and use the 
>> procedural technique of calling auth.basic() in the body (sec 9.25, pg 452 
>> of the 5th ed).  Or should I use the catch303 technique of this earlier 
>> post?
>> <https://groups.google.com/d/msg/web2py/zC6UKTM0qRY/_dE1vnkmYsMJ>
>>
>> Footnote:  On the remote machines, I'm using 2 different clients:  SUDS 
>> from Python, and a simple Java client based on java.xml.soap 
>> (SOAPConnectionFactory).  In the latter, the 303 error gets turned into an 
>> ugly exception about Invalid Content-Type ([...].saaj.SOAPExceptionImpl. 
>>  Is this the exception I should be catching to gracefully report the 
>> mess-up?  And can I expect a 401 to raise the same exception?
>>
>> /dps
>>
>> -- 
>>  
>> --- 
>> 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] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 

--- 
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/groups/opt_out.

Reply via email to