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 22:27:16 GMT
Thanks !

Ethan, I have it going... Thanks for the hand-holding and patience...and 
sorry for the trouble...

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