<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Thanks for adding this feature. Now it is possible to access HTTP headers  from within the service via [renv]. Tested with Rev 774.<div><br></div><div>Regards</div><div>Rakesh<br><br><div>> Subject: Re: [Zoo-discuss] ZOO-client and ZOO-API : concepts and usage<br>> From: gerald.fenoy@geolabs.fr<br>> Date: Sat, 11 Jun 2016 11:52:29 +0200<br>> CC: zoo-discuss@lists.osgeo.org<br>> To: rakeshuk@outlook.com<br>> <br>> Dear Rakesh,<br>> there were no way to do this earlier, except the obvious one consisting in accessing directly to the environment variables from the service source code itself.<br>> <br>> I have juste committed a small revision in trunk where I have added a [renv] section for storing this informations and provide direct access from the service source code through the first parameter.<br>> <br>> I hope this solves your issue.<br>> <br>> Best regards,<br>> <br>> <br>> <br>> > Le 10 juin 2016 à 21:59, rakesh prithiviraj <rakeshuk@outlook.com> a écrit :<br>> > <br>> > Thanks Gerald. For authentication, we use a Single Sign-On (SSO) solution and it is not a WPS service. SSO is sitting in Nginx and all the HTTP(S) requests are reverse proxied by NginX. After authentication, the SSO module appends few headers (key-value pairs) to all the HTTP(S) requests. This means we need a way to access HTTP request headers inside the service (for e.g. to see if the user logged in). <br>> > <br>> > The question is there a way to access HTTP headers (from HTTP request which started the execution) from inside the service?<br>> > <br>> > Thanks <br>> > <br>> > > Subject: Re: [Zoo-discuss] ZOO-client and ZOO-API : concepts and usage<br>> > > From: gerald.fenoy@geolabs.fr<br>> > > Date: Fri, 10 Jun 2016 21:44:02 +0200<br>> > > CC: zoo-discuss@lists.osgeo.org<br>> > > To: rakeshuk@outlook.com<br>> > > <br>> > > Dear Rakesh,<br>> > > thanks for your feedbacks, this is perfectly correct.<br>> > > <br>> > > I was speaking about passing the cookie through requests, for the specific case where you are chaining your services, by using JavaScript ZOO-API or simply WPS XML POST requests which can embed cookie information too.<br>> > > <br>> > > Best regards,<br>> > > <br>> > > > Le 10 juin 2016 à 20:42, rakesh prithiviraj <rakeshuk@outlook.com> a écrit :<br>> > > > <br>> > > > Dear Gerald,<br>> > > > <br>> > > > Thanks a lot for the explanation. I previously had a look at [lenv] and [senv] but couldn't relate it to my problem. Here is my understanding:<br>> > > > <br>> > > > There is a "LogIn" WPS service. In this service, we can set up a cookie using conf [lenv] [cookie]. After this step, we can save key-value pairs in conf[senv] map. <br>> > > > <br>> > > > When the user calls the "LogIn" service, ZOO-kernel returns the cookie (created in [lenv]) to the browser. From now onwards, all the WPS requests coming from this browser session will have the cookie information. So if the user calls another service (after LogIn service), his WPS execute request will send the cookie and ZOO-kernel will detect this cookie and will load the corresponding [senv] map before invoking the service. And inside the service, we can access conf[senv] map and can read all the information that we stored previously via the LogIn service.<br>> > > > <br>> > > > In LogIn Java service:<br>> > > > <br>> > > > HashMap lenvMap = (HashMap) (conf.get("lenv"));<br>> > > > lenvMap.put("cookie", "XXX=MM10001" + "; path=/");<br>> > > > <br>> > > > HashMap senvMap = new HashMap();<br>> > > > senvMap.put("XXX", "MM10001);<br>> > > > senvMap.put("userid", "rakesh");<br>> > > > conf.put("senv", senvMap);<br>> > > > <br>> > > > In second service:<br>> > > > <br>> > > > HashMap senvMap = (HashMap) (conf.get("senv"));<br>> > > > String userid = (String) senvMap.get("userid");<br>> > > > <br>> > > > Hope this is correct.<br>> > > > <br>> > > > regards<br>> > > > <br>> > > > <br>> > > > <br>> > > > <br>> > > > <br>> > > > > Subject: Re: [Zoo-discuss] ZOO-client and ZOO-API : concepts and usage<br>> > > > > From: gerald.fenoy@geolabs.fr<br>> > > > > Date: Fri, 10 Jun 2016 14:46:07 +0200<br>> > > > > CC: zoo-discuss@lists.osgeo.org<br>> > > > > To: rakeshuk@outlook.com<br>> > > > > <br>> > > > > Hi Rakesh,<br>> > > > > I have just answered your previous email.<br>> > > > > <br>> > > > > > Le 10 juin 2016 à 14:23, rakesh prithiviraj <rakeshuk@outlook.com> a écrit :<br>> > > > > > <br>> > > > > > Hi Gerald,<br>> > > > > > <br>> > > > > > To summarize my previous email:<br>> > > > > > <br>> > > > > > Is there any way to get access to additional information from within the process/service context. ? As of now, the processor receives three parameters (inputs,outputs, conf) and i am interested to know if there is a possibility to get access to run time information (like user-id, job id created by ZOO-Kernel, etc) within the processor context. Note that this information is not part of WPS Execute request (inputs,outputs).<br>> > > > > <br>> > > > > The only way I know to deal with this is to use cookie and sessions informations. The user authenticate through a WPS service which create a cookie identifier and store it in the cookie key of the [lenv] section. The service also store informations required by your application to understand that your user has been authenticated, for example the userid. Then the web application or requests sent by another client, have to forward the cookie informations into each requests they are producing to make sure the session will pass through all the WPS chain.<br>> > > > > <br>> > > > > > <br>> > > > > > If this is possible, then I don't need a middle layer between ZOO-client and ZOO-kernel.<br>> > > > > <br>> > > > > I d’ont think you need any middle layer for this and I hope to have make my point clear.<br>> > > > > <br>> > > > > Best regards,<br>> > > > > <br>> > > > > <br>> > > > > Gérald Fenoy<br>> > > > > http://wiki.osgeo.org/wiki/User:Djay<br>> > > > > <br>> > > <br>> > > <br>> > > <br>> > > Gérald Fenoy<br>> > > http://wiki.osgeo.org/wiki/User:Djay<br>> > > <br>> <br>> <br>> <br>> Gérald Fenoy<br>> http://wiki.osgeo.org/wiki/User:Djay<br>> <br></div></div>                                    </div></body>
</html>