Reinstate changes to do with building SP authentication URL from pieces.
authorMike Taylor <mike@indexdata.com>
Thu, 14 Aug 2014 15:50:49 +0000 (16:50 +0100)
committerMike Taylor <mike@indexdata.com>
Thu, 14 Aug 2014 15:50:49 +0000 (16:50 +0100)
Somehow this got lost in the shuffle of branches.
I *hate* branches.

src/mkws-core.js

index 3632a64..ca9a9f0 100644 (file)
@@ -167,7 +167,11 @@ mkws.setMkwsConfig = function(overrides) {
   var config_default = {
     use_service_proxy: true,
     pazpar2_url:        "//mkws.indexdata.com/service-proxy/",
-    service_proxy_auth: "//mkws.indexdata.com/service-proxy-auth",
+    service_proxy_auth: undefined, // generally rolled from the next three properties
+    // Was: //mkws.indexdata.com/service-proxy-auth
+    pp2_hostname: "mkws.indexdata.com",
+    sp_path: "service-proxy-auth",
+    credentials: undefined,
     lang: "",
     sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
     perpage_options: [10, 20, 30, 50],
@@ -650,9 +654,29 @@ mkws.pagerNext = function(tname) {
       }
     */
 
+    function sp_auth_url(config) {
+      if (config.service_proxy_auth) {
+        mkws.log("using pre-baked sp_auth_url '" + config.service_proxy_auth + "'");
+        return config.service_proxy_auth;
+      } else {
+        var s = '//';
+        s += config.auth_hostname ? config.auth_hostname : config.pp2_hostname;
+        s += '/' + config.sp_path + '?command=auth&action=perconfig';
+        var c = config.credentials;
+        if (c) {
+          if (c) {
+            s += ('&username=' + c.substr(0, c.indexOf('/')) +
+                  '&password=' + c.substr(c.indexOf('/')+1));
+          }
+        }
+        mkws.log("generated sp_auth_url '" + s + "'");
+        return s;
+      }
+    }
+
     if (mkws.config.use_service_proxy) {
       if (!mkws.authenticated) {
-        authenticateSession(mkws.config.service_proxy_auth,
+        authenticateSession(sp_auth_url(mkws.config),
                             mkws.config.service_proxy_auth_domain,
                             mkws.config.pazpar2_url);
       }