On Jun 12, 2013, at 10:35 AM, Amila Jayasekara <thejaka.am...@gmail.com> wrote:

> Hi Viknes,
> 
> You still need to set user name as a Authorisation header. I doubt you will
> be able to do this even, cos browsers doesnt allow any kind of http header
> manipulations.

Amila, this is making me wonder again, is this a good idea to expect a user if 
to be set in the request header? Why cannot we allow the user if to be set as a 
parameter? is this because of a security risk or any other technical reasons? 

Suresh

> 
> Thanks
> Amila
> 
> 
> On Wed, Jun 12, 2013 at 10:29 AM, Viknes Balasubramanee 
> <vikn...@msn.com>wrote:
> 
>> I'd like to avoid a backend server of my own or a proxy server. My aim is
>> to
>> develop a portable webapp of just HTML and JS pages that can be included by
>> any client. I am pretty sure I have successfully made cross domain requests
>> earlier. The only problem here is adding the authorization header and these
>> 2 browsers don't allow it.
>> 
>> Amila,
>> When the security is disabled, should the username be still set in the
>> authorization header or can it be passed as a parameter or data attribute.
>> 
>> Thanks
>> Viknes
>> 
>> -----Original Message-----
>> From: Amila Jayasekara [mailto:thejaka.am...@gmail.com]
>> Sent: Wednesday, June 12, 2013 9:28 AM
>> To: dev@airavata.apache.org
>> Cc: viknesb
>> Subject: Re: Accessing the REST service from JavaScript
>> 
>> I am not quite sure, issue is more subtle I guess. Cos browser it self
>> doesnt allow us to manipulate headers.
>> But we can try and see.
>> 
>> Thanks
>> Amila
>> 
>> 
>> On Wed, Jun 12, 2013 at 9:21 AM, Supun Kamburugamuva
>> <supu...@gmail.com>wrote:
>> 
>>> From the description my understand was this is a cross domain
>>> scripting issue. If that is the case, using a proxy server will make
>>> all the requests to go through the same server (domain) and avoid the
>> issue.
>>> 
>>> Thanks,
>>> Supun..
>>> 
>>> 
>>> On Wed, Jun 12, 2013 at 8:58 AM, Amila Jayasekara
>>> <thejaka.am...@gmail.com>wrote:
>>> 
>>>> Hi Supun,
>>>> 
>>>> Didn't quite understand how HTTPD going to solve the issue. You
>>>> meant to (from browser) pass header in different format to HTTPD and
>>>> set headers
>>> at
>>>> HTTPD server level ? If this is possible could you also point to a
>>>> reference ?
>>>> 
>>>> Thanks
>>>> Amila
>>>> 
>>>> 
>>>> On Wed, Jun 12, 2013 at 8:28 AM, Supun Kamburugamuva
>>>> <supu...@gmail.com
>>>>> wrote:
>>>> 
>>>>> You can try proxying all your requests through a HTTPD server. May
>>>>> be
>>> it
>>>>> will help.
>>>>> 
>>>>> Thanks,
>>>>> Supun..
>>>>> 
>>>>> 
>>>>> On Wed, Jun 12, 2013 at 12:48 AM, Amila Jayasekara
>>>>> <thejaka.am...@gmail.com>wrote:
>>>>> 
>>>>>> Hi Viknes,
>>>>>> 
>>>>>> As discussed offline the reason for authentication failure is
>>>>>> not
>>>> getting
>>>>>> "Authorization" header to backend. We experienced that Firefox
>>>>>> and
>>>> Chrome
>>>>>> does
>>>>>> not allow user to set headers while IE allow user to set headers
>>>> (Correct
>>>>>> me if I am wrong). Further [1] describes this restriction in
>> detail.
>>>>>> 
>>>>>> It seems like due to security reasons some browsers does not
>>>>>> allow
>>> user
>>>>> to
>>>>>> manipulate headers. Maybe other Javascript experts can give more
>>>> feedback
>>>>>> to
>>>>>> solve this issue.
>>>>>> 
>>>>>> Further even though you disable security Airavata needs a user
>>>>>> id to operate on. Therefore we still require a user id in the
>>>>>> request
>>> header.
>>>>>> 
>>>>>> [1]
>>>> http://news.anarchy46.net/2012/06/refused-to-set-unsafe-header.html
>>>>>> 
>>>>>> Thanks
>>>>>> Amila
>>>>>> 
>>>>>> 
>>>>>> On Tue, Jun 11, 2013 at 11:42 PM, Viknes Balasubramanee <
>>>> vikn...@msn.com
>>>>>>> wrote:
>>>>>> 
>>>>>>> Hi All,
>>>>>>> 
>>>>>>> I am trying to get the list of experiments in Airavata by
>>>>>>> accessing
>>>> the
>>>>>>> Registry API REST service from a webapp. When I make an AJAX
>>> request
>>>>> from
>>>>>>> JavaScript, I get an error in the browser console(FireBug)
>>>>>>> stating
>>>>>> "Access
>>>>>>> denied to restricted URI".  This is the URL that I am trying
>>>>>>> to hit
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> http://localhost:8080/airavata-registry/api/experimentregistry/get/exp
>>> erimen
>>>>>>> ts/all . The URL works fine from the browser.
>>>>>>> 
>>>>>>> 1. I have the basic authentication header set with the encoded
>>>> username
>>>>>> and
>>>>>>> password when I make the request. I have CORS enabled in jQuery.
>>> Yet,
>>>>> the
>>>>>>> request seems to fail.
>>>>>>> 2. In order to skip the authentication and try my request, I
>>>>>>> set
>>> the
>>>>>>> enabled
>>>>>>> parameter in authentication.xml to false. <authenticators
>>>>>> enabled="false">.
>>>>>>> When I do so, I get the below exception if I try to connect to
>>>>>>> the
>>>>>> registry
>>>>>>> from XBaya.
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.airavata.client.api.exception.AiravataAPIInvocationException:
>>>>>>> Error while initializing the Airavata API
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.airavata.client.AiravataAPIFactory.getAPI(AiravataAPIFactor
>>> y.java
>>>>>>> :64)
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.airavata.client.AiravataAPIFactory.getAPI(AiravataAPIFactor
>>> y.java
>>>>>>> :43)
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> org.apache.airavata.xbaya.ui.dialogs.registry.RegistryWindow.getAirava
>>> taAPI(
>>>>>>> RegistryWindow.java:260)
>>>>>>> Caused by:
>>>>>>> 
>>>>> 
>>> org.apache.airavata.client.api.exception.AiravataAPIInvocationException:
>>>>>>> Error while initializing the Airavat a API
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
>> org.apache.airavata.client.AiravataClient.initialize(AiravataClient.java:163
>>>>>>> )
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
>> org.apache.airavata.client.AiravataAPIFactory.getAPI(AiravataAPIFactory.java
>>>>>>> :61)
>>>>>>>        ... 99 more
>>>>>>> Caused by: java.lang.RuntimeException: Failed : HTTP error code :
>>> 500
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
>> org.apache.airavata.rest.client.ConfigurationResourceClient.getEventingURI(C
>>>>>>> onfigurationResourceClient.java:5
>>>>>>> 19)
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
>> org.apache.airavata.rest.client.RegistryClient.getEventingServiceURI(Registr
>>>>>>> yClient.java:164)
>>>>>>>        at
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
>> org.apache.airavata.client.AiravataClient.createConfig(AiravataClient.java:1
>>>>>>> 15)
>>>>>>> 
>>>>>>> Please let me know if I am missing something here. For most of
>> the
>>>> GSOC
>>>>>>> projects, we are developing webapp and I believe this would play
>> an
>>>>>>> important role.
>>>>>>> 
>>>>>>> Thanks
>>>>>>> Viknes
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Supun Kamburugamuva
>>>>> Member, Apache Software Foundation; http://www.apache.org
>>>>> E-mail: supu...@gmail.com;  Mobile: +1 812 369 6762
>>>>> Blog: http://supunk.blogspot.com
>>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Supun Kamburugamuva
>>> Member, Apache Software Foundation; http://www.apache.org
>>> E-mail: supu...@gmail.com;  Mobile: +1 812 369 6762
>>> Blog: http://supunk.blogspot.com
>>> 
>> 

Reply via email to