Hello,

We are using MarkLogic to authorize certain clients to access a RESTful API. 
Basically, we use a login endpoint that uses xdmp:login to authenticate the 
user. When the authentication is successful, MarkLogic server returns a cookie 
named SessionID that has no expiration date. Basically, what this means is that 
this cookie will expire once the client app is closed.

We want this cookie to expire some time in the future (say, a year from now), 
and not with the client session. We tried setting the expiration date, like so:

declare function getCookies() as item()*
{
   
 
    let $name := "SessionID"
    let $value := "0e39adb6c619ec01"
    let $expires := 
get-cookie-date-string(fn:dateTime(xs:date(fn:current-dateTime()) + 
xs:dayTimeDuration('P1D'),fn:current-time()))
    let $path := "/"
    let $domain  := "my.domain"
    let $secure := xs:boolean("false")
    
    let $cookie := fn:concat(xdmp:url-encode($name), "=", 
xdmp:url-encode($value))
    let $cookie := fn:concat($cookie, "; expires=", "Wed, 09 Jun 2021 10:18:14 
GMT") 
    let $cookie := fn:concat($cookie, "; domain=", $domain)
    let $cookie := fn:concat($cookie, "; path=", $path)
    let $cookie := fn:concat($cookie, "; secure")
    return xdmp:add-response-header("Set-Cookie", $cookie)
    
};



With no success. I believe it is because the cookie header with the modified 
date is sent before the cookie header that marklogic is setting automatically. 
Now, I need a way to either:

a) Send the cookie with the modified date after the default cookie has been sent
b) Change the way MarkLogic is sending the session cookie so that it has an 
expiration date in the future.

Any ideas would be appreciated.

Sergio Restrepo | VP Architecture | Yuxi Pacific Group
Office: +1 (786) 623 5517
Mobile: +1 (484) 598 3729
Skype: yuxi-sergio
http://www.yuxipacific.com/

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to