incubator-esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Hirsch <hirsch.d...@gmail.com>
Subject Re: integration-admin role required for api2 calls ?
Date Fri, 16 Jul 2010 05:18:13 GMT
2010/7/16 Imtiaz Ahmed H E <in.imtiaz@gmail.com>:
> Thanks !
>
> Ethan, I have it going... Thanks for the hand-holding and patience...and
> sorry for the trouble...

Great - I'm glad that you finally got it working. The API2 is very
important for us and if you look at the ToDos at the end of the
API2.scala file, you'll see that Ethan has lots of cool ideas to
improve it even more.

D.
>
> With mvn jetty:run and token created with that I have...
>
> imtiaz@imtiaz-20100131 /cygdrive/d/temp
> $ curl --dump-header headers -d "token=RKATUYRPVMTG5MVRVKGSXDFS4CH5ZROO"
> http:/
> /localhost:8080/api2/session
> <?xml version="1.0" encoding="UTF-8"?>
> <api><session><user><id>1</id><nickname>imtiaz_jr</nickname><image>None</image>
> whole_name>I A  H E jr</whole_name></user></session></api>
>
> imtiaz@imtiaz-20100131 /cygdrive/d/temp
> $ cat headers
> HTTP/1.1 200 OK
> Expires: Thu, 15 Jul 2010 22:23:48 UTC
> Set-Cookie: JSESSIONID=qvaftwfikare1k05t6aiie2wn;Path=/
> Content-Length: 182
> Date: Thu, 15 Jul 2010 22:23:48 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.24)
>
>
> imtiaz@imtiaz-20100131 /cygdrive/d/temp
> $ ~
> ----- Original Message ----- From: "Richard Hirsch" <hirsch.dick@gmail.com>
> To: <esme-dev@incubator.apache.org>
> Sent: Thursday, July 15, 2010 11:05 PM
> Subject: Re: integration-admin role required for api2 calls ?
>
>
> 2010/7/15 Imtiaz Ahmed H E <in.imtiaz@gmail.com>:
>>
>> 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
>> ?
>
> This is just if you use the api2 interface to create a new user + tokens.
>
>>
>> ----- 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