incubator-esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Imtiaz Ahmed H E" <in.imt...@gmail.com>
Subject Re: integration-admin role required for api2 calls ?
Date Thu, 15 Jul 2010 14:34:16 GMT
Also, Ethan, I seem to recall Dick Hirsch telling me you need to be have an 
integration-admin role to create tokens or whatever? How do I manage that ?

----- Original Message ----- 
From: "Imtiaz Ahmed H E" <in.imtiaz@gmail.com>
To: <esme-dev@incubator.apache.org>
Sent: Thursday, July 15, 2010 7:55 PM
Subject: Re: integration-admin role required for api2 calls ?


> Makes sense.
>
> For a quick try-out of this would you tell me
> 1. How to create a user/login...user is 'imtiaz2', lets say...
> and
> 2. Create a token through the api with mvn jetty:run of esme...
>
> I guess that's it for now and I'll try it out. Looks like that will solve 
> this conundrum(!) of mine which seems to be born out of my ignorance ! :(
>
> Imtiaz
>
> ----- Original Message ----- 
> From: "Ethan Jewett" <esjewett@gmail.com>
> To: <esme-dev@incubator.apache.org>
> Sent: Thursday, July 15, 2010 7:44 PM
> Subject: Re: integration-admin role required for api2 calls ?
>
>
> Hi Imtiaz,
>
> It looks like it's not finding the token when you are running using
> Jetty. Since I believe ESME will use a different datastore when
> running under Tomcat than it uses when running under Jetty, I think
> you will need to create a user and a token under Jetty, then use that
> token.
>
> Does that sound right to you? I could be totally off-base here, but
> that would be the first thing to check.
>
> If the token really does exist under Jetty, then can you change your
> println statement to the following and we'll go from there:
>
>  auth <- { println("****token = " + token)
>
> Thanks,
> Ethan
>
> 2010/7/15 Imtiaz Ahmed H E <in.imtiaz@gmail.com>:
>> Ethan, hopefully you will be able to point me the way here...
>>
>> I have included in this mail at the end, addSession() in API2.scala with
>> some debug println's introduced. With this here's what I get----
>>
>> -------------------------------------------------------------------------------------------
>> ------------------With mvn install and executing Esme in Tomcat curl 
>> output
>> is ---------------------
>>
>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>> $ curl --dump-header headers -d "token=HEZTQKM525SAMIPN4EDVRUOGHI40AKBL"
>> http:/
>> /localhost:8080/esme-server-apache-esme-1.0-RC1-incubating/api2/session
>> <?xml version="1.0" encoding="UTF-8"?>
>> <api><session><user><id>3</id><nickname>imtiaz2</nickname><image>None</image><w
>> ole_name>I A 2 H E</whole_name></user></session></api>
>>
>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>> $ cat headers
>> HTTP/1.1 200 OK
>> Server: Apache-Coyote/1.1
>> Set-Cookie: JSESSIONID=C60F80AD16EFD5BE6E55231EE6C7651D;
>> Path=/esme-server-apac
>> e-esme-1.0-RC1-incubating
>> Expires: Thu, 15 Jul 2010 13:44:35 UTC
>> Date: Thu, 15 Jul 2010 13:44:35 GMT
>> Pragma: no-cache
>> Cache-Control: no-cache; private; no-store
>> X-Lift-Version: 2.0-SNAPSHOT
>> Content-Type: text/xml;charset=utf-8
>> Content-Length: 178
>>
>>
>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>> $
>>
>> -------------------------and in the Tomcat log
>> window....------------------------------
>>
>> INFO: Server startup in 25875 ms
>> ****auth =
>> Full(org.apache.esme.model.AuthToken={user=3,uniqueId=HEZTQKM525SAMIP
>> N4EDVRUOGHI40AKBL,createdDate=Sun, 11 Jul 2010 11:47:30
>> UTC,id=2,description=MyS
>> econdToken})
>> ****user =
>> Full(org.apache.esme.model.User={validated=false,uniqueId=0ZYRGE1WUDQ
>> 5EZJTPZBAV5OIB5AHX0PK,nickname=imtiaz2,firstName=I A 2,lastName=H
>> E,imageUrl=,ti
>> mezone=Asia/Calcutta,superUser=false,locale=en_US,id=3})
>> INFO - Service request (POST)
>> /esme-server-apache-esme-1.0-RC1-incubating/api2/s
>> ession took 218 Milliseconds
>> WARN - Going to buffer response body of large or unknown size. Using
>> getResponse
>> BodyAsStream instead is recommended.
>>
>> ------------------------------------------------------------------------------
>> ---------------------------With mvn jetty:run and curl output is
>> ----------------------------
>>
>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>> $ rm headers
>>
>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>> $ curl --dump-header headers -d "token=HEZTQKM525SAMIPN4EDVRUOGHI40AKBL"
>> http:/
>> /localhost:8080/api2/session
>>
>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>> $ cat headers
>> HTTP/1.1 403 Forbidden
>> Expires: Thu, 15 Jul 2010 13:49:54 UTC
>> Set-Cookie: JSESSIONID=1eie2xmbi5yj71aagff9u961sm;Path=/
>> Content-Length: 0
>> Date: Thu, 15 Jul 2010 13:49:54 UTC
>> Pragma: no-cache
>> Content-Type: text/plain; charset=utf-8
>> Cache-Control: no-cache; private; no-store
>> X-Lift-Version: 2.0-SNAPSHOT
>> Server: Jetty(6.1.24)
>>
>>
>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>> $
>>
>> ----------------------------------and in the jetty log
>> window-------------------------------------
>>
>> [INFO] Started Jetty Server
>> ****auth = Empty
>> INFO - Service request (POST) /api2/session took 328 Milliseconds
>>
>> -------------------------------------------------------------------------------------------------
>> ---------------------- addSession in API2 with with debug println's as
>> follows-------------------
>>
>> def addSession(): LiftResponse = {
>> val r: Box[Tuple3[Int,Map[String,String],Box[Elem]]] = if
>> (User.loggedIn_?) Empty else
>> for(token <- S.param("token")) yield {
>> val ret: Box[Tuple3[Int,Map[String,String],Box[Elem]]] = for {
>> auth <- { println("****auth = " +
>> AuthToken.find(By(AuthToken.uniqueId, token)))
>> AuthToken.find(By(AuthToken.uniqueId, token)) }
>> user <- { println("****user = " + auth.user.obj)
>> auth.user.obj }
>> val user_xml: Elem = <session>{userToXml(user)}</session>
>> } yield {
>> User.logUserIn(user)
>> val myActor = buildActor(user.id)
>> messageRestActor(Full(myActor))
>> userRoles(AuthRole("integration-admin"))
>> (200,Map(),Full(user_xml))
>> }
>>
>> ret openOr (403,Map(),Empty)
>> }
>>
>> r
>> }
>>
>>
>>
>> Imtiaz
>> Imtiaz Ahmed H E
>> Cell +91.98452 84561
>> Bangalore, India
>>
>>
>>
>>
>> ----- Original Message ----- From: "Richard Hirsch" 
>> <hirsch.dick@gmail.com>
>> To: <esme-dev@incubator.apache.org>
>> Sent: Tuesday, July 13, 2010 9:54 AM
>> Subject: Re: integration-admin role required for api2 calls ?
>>
>>
>> 2010/7/13 Imtiaz Ahmed H E <in.imtiaz@gmail.com>:
>>>
>>> Why is that you don't need to include "Esme" as in
>>> http://localhost:8080/esme/api2/session but instead you say
>>> "http://localhost:8080/api2/session" when you use
>>> mvn jetty:run instead of Tomcat to use api2. The api seems to work
>>> correctly
>>> when invoked when running in Tomcat.
>>
>> In Tomcat you can have different applications running in the
>> container. Every time you put a war or ear file in Tomcat's webapps
>> directory, the files are extracted and the application is then
>> available using the name of the war/ear file file. Using mvn jetty:run
>> - there is just one application deployed (esme) and therefore, there
>> is no need for "esme" in the url.
>>
>>>
>>> Imtiaz
>>>
>>> ----- Original Message ----- From: "Richard Hirsch"
>>> <hirsch.dick@gmail.com>
>>> To: <esme-dev@incubator.apache.org>
>>> Sent: Monday, July 12, 2010 8:13 PM
>>> Subject: Re: integration-admin role required for api2 calls ?
>>>
>>>
>>> On Mon, Jul 12, 2010 at 4:28 PM, Imtiaz Ahmed H E <in.imtiaz@gmail.com>
>>> wrote:
>>>>
>>>> BTW, the steps I follow are:
>>>>
>>>> 1. mvn jetty:run
>>>> 2. Open cygwin prompt
>>>> 3, Execute curl commands.
>>>
>>> What command do you run in curl?
>>>
>>> When you run jetty - tomcat must be shut down. It usually listens on
>>> the same 8080 port.
>>>
>>>>
>>>> When previously opened Esme may have been left in logged in OR logged 
>>>> out
>>>> state...
>>>>
>>>> Please find attached a jpg with the My Tokens page of ESME showing the
>>>> token
>>>> I have used in my curl command to dump headers.
>>>
>>> The esme-dev mailer usually deletes all attachments - so we won't get it
>>> :-<
>>>
>>>>
>>>> Maybe I need to step through API2's addSession() method. I stopped
>>>> stepping
>>>> through code when I moved to Java development 10 years back !. Or I 
>>>> need
>>>> to
>>>> figure out the basics of all that's going on inside addSession(),
>>>> especially
>>>> Lift-related, then maybe I can stick to my no-stepping-through-code
>>>> attitude
>>>> !
>>>>
>>>> Tried it again just now after shutting down a Tomcat instance of Esme
>>>> leaving Esme user, imtiaz2, logged in...got the same '403 Forbidden' in
>>>> the
>>>> dumped header.
>>>> Imtiaz
>>>>
>>>> ----- Original Message ----- From: "Ethan Jewett" <esjewett@gmail.com>
>>>> To: <esme-dev@incubator.apache.org>
>>>> Cc: <in.imtiaz@gmail.com>
>>>> Sent: Monday, July 12, 2010 7:35 PM
>>>> Subject: Re: integration-admin role required for api2 calls ?
>>>>
>>>>
>>>> For me, the following works fine:
>>>>
>>>> curl --dump-header headers -d "token=KMETDTRX01VV5MVS1RHV2CNGMUKENUB3"
>>>> http://localhost:8080/api2/session
>>>>
>>>> Returns:
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>
>>>>
>>>> <api><session><user><id>24</id><nickname>test</nickname><image>None</image><whole_name>Ethan
>>>> Jewett</whole_name></user></session></api>
>>>>
>>>> Headers (from "cat headers"): HTTP/1.1 200 OK
>>>> Expires: Mon, 12 Jul 2010 14:02:15 UTC
>>>> Set-Cookie: JSESSIONID=2041ucsme2i8;Path=/
>>>> Content-Length: 179
>>>> Date: Mon, 12 Jul 2010 14:02:15 UTC
>>>> Pragma: no-cache
>>>> Content-Type: text/xml; charset=utf-8
>>>> Cache-Control: no-cache; private; no-store
>>>> X-Lift-Version: 2.0-SNAPSHOT
>>>> Server: Jetty(6.1.22)
>>>>
>>>> If you can confirm that the token exists in your installation, then we
>>>> have some sort of bug that I am unable to recreate at the moment and
>>>> we'll need to dig into it further.
>>>>
>>>> Ethan
>>>>
>>>>
>>>> On Mon, Jul 12, 2010 at 9:30 AM, Vassil Dichev <vdichev@apache.org>
>>>> wrote:
>>>>>
>>>>> It might also mean that there's no such URL so you have no access to
>>>>> such a resource.
>>>>>
>>>>> On Mon, Jul 12, 2010 at 10:09 AM, <in.imtiaz@gmail.com> wrote:
>>>>>>
>>>>>> Why am I getting 403, the token is exactly as got from one of the

>>>>>> users
>>>>>> in the UI without an integration-admin role.
>>>>>>
>>>>>> Sent from BlackBerryĹ˝ on Airtel
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Richard Hirsch <hirsch.dick@gmail.com>
>>>>>> Date: Mon, 12 Jul 2010 09:05:21
>>>>>> To: <esme-dev@incubator.apache.org>
>>>>>> Reply-To: esme-dev@incubator.apache.org
>>>>>> Subject: Re: integration-admin role required for api2 calls ?
>>>>>>
>>>>>> you don't need the role to login in via the session method . You
just
>>>>>> need the role when creating users or tokens via the api2.
>>>>>>
>>>>>> D.
>>>>>>
>>>>>> On Mon, Jul 12, 2010 at 9:01 AM, Imtiaz Ahmed H E 
>>>>>> <in.imtiaz@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> and how do you get this role ? Not having that role is probably
why
>>>>>>> I'm
>>>>>>> getting '403 Forbidden' in the following...
>>>>>>>
>>>>>>>
>>>>>>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>>>>>>> $ curl --dump-header headers -d
>>>>>>> "token=RCJ44VUZEOEES3NR1EZEIK32PF1BNOBQ"
>>>>>>> http:/
>>>>>>> /localhost:8080/api2/session
>>>>>>>
>>>>>>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>>>>>>> $ cat headers
>>>>>>> HTTP/1.1 403 Forbidden
>>>>>>> Expires: Sun, 11 Jul 2010 08:29:09 UTC
>>>>>>> Set-Cookie: JSESSIONID=d8a63eqezeownsy8qnayuhwy;Path=/
>>>>>>> Content-Length: 0
>>>>>>> Date: Sun, 11 Jul 2010 08:29:09 UTC
>>>>>>> Pragma: no-cache
>>>>>>> Content-Type: text/plain; charset=utf-8
>>>>>>> Cache-Control: no-cache; private; no-store
>>>>>>> X-Lift-Version: 2.0-SNAPSHOT
>>>>>>> Server: Jetty(6.1.24)
>>>>>>>
>>>>>>>
>>>>>>> imtiaz@imtiaz-20100131 /cygdrive/d/temp
>>>>>>> $
>>>>>>>
>>>>>>> Imtiaz
>>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
> 


Mime
View raw message