Re: [MarkLogic Dev General] DataHub app digest authentication with MarkLogic 9
GAH! Head. Banging. Desk. I knew about this patch. I applied it a while ago and it didn’t seem to fix the problem, but there were other issues still in play at that point. I had to roll some stuff back and did not re-apply the patch. In my trace output the “/v1” prefix was present in a couple of places but in the one place where it really mattered it was “undefined/search…”. I hate when that happens. Digest auth working. Now to fix the remaining problems. Thanks. Ron Hitchens r...@overstory.co.uk, +44 7879 358212 On April 26, 2018 at 7:37:35 PM, Ryan Dew (ryan.j@gmail.com) wrote: Hi Ron, You can find the changes that fixed this issue at https://github.com/marklogic-community/slush-marklogic-node/pull/520/files Basically, when performing the path as part of the digest authentication was missing the "/v1" prefix. On Thu, Apr 26, 2018 at 8:20 AM Ron Hitchenswrote: > >I’ve inherited an application that was created by MarkLogic > professional services. It uses the the DataHub Framework and a Node.js app > that was generated with Slush. It was created on MarkLogic 8 and is > working there. I need to make several changes/improvements, one of which > is to upgrade MarkLogic to v9. > >I’ve upgraded MarkLogic to v9 ok and the data load and harmonization > stuff seems to be working ok now. But I’m having no end of trouble getting > the Node front-end app to talk to ML9. > >The problem seems to be the digest authentication protocol. The app is > able to complete login where it hits MarkLogic to validate the > user/password and then stores it locally in a session for later search > requests. Those always fail with a 401 response. I’ve done some tracing > and it appears that it is indeed finding the session credentials and is > setting the digest auth header as expected on the request to ML. > >Comparing the Authentication: header with the one sent by a successful > curl request, the only difference of note seems to be that the “cnonce” > feld is hex encoded by Node and is base64 encoded by curl. I don’t know > the digest protocol well enough to know if this is the core or the > problem. But in any case trying to track down how the authentication is > generated is like being lost in a maze of twisty little passages, all > Javascript. > >I found a small ML9 release note that digest authentication had been > tightened up in ML9, which is probably the nub of the issue. So my > question is, how do I fix this? How do I get the HTTP digest handshake > working properly between this Node.js app and MarkLogic 9? > >Any help appreciated. > > > Ron Hitchens r...@overstory.co.uk, +44 7879 358212 > > ___ > General mailing list > General@developer.marklogic.com > Manage your subscription at: > http://developer.marklogic.com/mailman/listinfo/general > ___ General mailing list General@developer.marklogic.com Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general ___ General mailing list General@developer.marklogic.com Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
Re: [MarkLogic Dev General] DataHub app digest authentication with MarkLogic 9
Hi Ron, You can find the changes that fixed this issue at https://github.com/marklogic-community/slush-marklogic-node/pull/520/files Basically, when performing the path as part of the digest authentication was missing the "/v1" prefix. On Thu, Apr 26, 2018 at 8:20 AM Ron Hitchenswrote: > >I’ve inherited an application that was created by MarkLogic > professional services. It uses the the DataHub Framework and a Node.js app > that was generated with Slush. It was created on MarkLogic 8 and is > working there. I need to make several changes/improvements, one of which > is to upgrade MarkLogic to v9. > >I’ve upgraded MarkLogic to v9 ok and the data load and harmonization > stuff seems to be working ok now. But I’m having no end of trouble getting > the Node front-end app to talk to ML9. > >The problem seems to be the digest authentication protocol. The app is > able to complete login where it hits MarkLogic to validate the > user/password and then stores it locally in a session for later search > requests. Those always fail with a 401 response. I’ve done some tracing > and it appears that it is indeed finding the session credentials and is > setting the digest auth header as expected on the request to ML. > >Comparing the Authentication: header with the one sent by a successful > curl request, the only difference of note seems to be that the “cnonce” > feld is hex encoded by Node and is base64 encoded by curl. I don’t know > the digest protocol well enough to know if this is the core or the > problem. But in any case trying to track down how the authentication is > generated is like being lost in a maze of twisty little passages, all > Javascript. > >I found a small ML9 release note that digest authentication had been > tightened up in ML9, which is probably the nub of the issue. So my > question is, how do I fix this? How do I get the HTTP digest handshake > working properly between this Node.js app and MarkLogic 9? > >Any help appreciated. > > > Ron Hitchens r...@overstory.co.uk, +44 7879 358212 > > ___ > General mailing list > General@developer.marklogic.com > Manage your subscription at: > http://developer.marklogic.com/mailman/listinfo/general > ___ General mailing list General@developer.marklogic.com Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
[MarkLogic Dev General] DataHub app digest authentication with MarkLogic 9
I’ve inherited an application that was created by MarkLogic professional services. It uses the the DataHub Framework and a Node.js app that was generated with Slush. It was created on MarkLogic 8 and is working there. I need to make several changes/improvements, one of which is to upgrade MarkLogic to v9. I’ve upgraded MarkLogic to v9 ok and the data load and harmonization stuff seems to be working ok now. But I’m having no end of trouble getting the Node front-end app to talk to ML9. The problem seems to be the digest authentication protocol. The app is able to complete login where it hits MarkLogic to validate the user/password and then stores it locally in a session for later search requests. Those always fail with a 401 response. I’ve done some tracing and it appears that it is indeed finding the session credentials and is setting the digest auth header as expected on the request to ML. Comparing the Authentication: header with the one sent by a successful curl request, the only difference of note seems to be that the “cnonce” feld is hex encoded by Node and is base64 encoded by curl. I don’t know the digest protocol well enough to know if this is the core or the problem. But in any case trying to track down how the authentication is generated is like being lost in a maze of twisty little passages, all Javascript. I found a small ML9 release note that digest authentication had been tightened up in ML9, which is probably the nub of the issue. So my question is, how do I fix this? How do I get the HTTP digest handshake working properly between this Node.js app and MarkLogic 9? Any help appreciated. Ron Hitchens r...@overstory.co.uk, +44 7879 358212 ___ General mailing list General@developer.marklogic.com Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general