From: Mike Taylor Date: Fri, 7 Nov 2014 17:31:19 +0000 (+0000) Subject: Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/mkws X-Git-Tag: 1.0.0~42 X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=commitdiff_plain;h=119f2d2698d5e997bf17c1d733dea08cbd9ba6ef;hp=d43d342c9f263bf0226b23151e7eefb681a98395;p=mkws-moved-to-github.git Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/mkws --- diff --git a/doc/mkws-manual.markdown b/doc/mkws-manual.markdown index 37518eb..b0107be 100644 --- a/doc/mkws-manual.markdown +++ b/doc/mkws-manual.markdown @@ -842,11 +842,6 @@ default values are in footnotes to keep the table reasonably narrow. ---- Element Widget Type Default Description -------- ------ ----- --------- ------------ -auth_hostname _global_ string If provided, overrides the `pp2_hostname` setting when constructing the - Service Proxy authentication URL. This need only be used when authentication - is performed on a different host from the remaining operations (search, - retrieve, etc.) - autosearch facet, string If provided, this setting contains a query which is immediately run on behalf facets, of the team. Often used with an [indirect setting](#indirect-settings). record, @@ -937,8 +932,8 @@ sentences reference int Limits the number of sente service_proxy_auth _global_ url If defined, this is the URL which, when `use_service_proxy` is true, is fetched once at the beginning of each session to authenticate the user and establish a session that encompasses a defined set of targets to search - in. When not defined, the URL is assembled from `auth_hostname` or - `pp2_hostname`, `sp_auth_path`, `sp_auth_query` and + in. When not defined, the URL is assembled from `sp_auth_hostname` or + `pp2_hostname`, `pp2_path` or `sp_auth_path`, `sp_auth_query` and `sp_auth_credentials`. See the [Assembling Pazpar2 URLs](#assembling-pazpar2-urls) section below. @@ -974,10 +969,15 @@ sp_auth_credentials _global_ string If defined, this must be a initialisation. See the [Assembling Pazpar2 URLs](#assembling-pazpar2-urls) section below. -sp_auth_path _global_ string *Note 6* Part of the URL used for authentication. See the [Assembling Pazpar2 +sp_auth_hostname _global_ string If provided, overrides the `pp2_hostname` setting when constructing the + Service Proxy authentication URL. This need only be used when authentication + is performed on a different host from the remaining operations (search, + retrieve, etc.) + +sp_auth_path _global_ string Part of the URL used for authentication. See the [Assembling Pazpar2 URLs](#assembling-pazpar2-urls) section below. -sp_auth_query _global_ string *Note 7* Part of the URL used for authentication. See the [Assembling Pazpar2 +sp_auth_query _global_ string *Note 6* Part of the URL used for authentication. See the [Assembling Pazpar2 URLs](#assembling-pazpar2-urls) section below. target facet, string One of three ways to select which targets an auto-searching widgets uses. See @@ -1034,13 +1034,11 @@ customise the display than by providing a full HTML structure. 3. The default for `pp2_hostname` is `"sp-mkws.indexdata.com"` -4. The default for `pp2_path` is `"service-proxy"` +4. The default for `pp2_path` is `"service-proxy/"` 5. The default for `sort_options` is `[["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]]` -6. The default for `sp_auth_path` is `"service-proxy/"`. - -7. The default for `sp_auth_query` is `"command=auth&action=perconfig"`. +6. The default for `sp_auth_query` is `"command=auth&action=perconfig"` ### Indirect settings @@ -1069,8 +1067,19 @@ invoked from the URL `http://example.com/magic/lookup/dinosaur` ### Assembling Pazpar2 URLs -FIXME describe how `pazpar2_url` is assembled from `pp2_hostname` and `pp2_path`; and how `service_proxy_auth` is assembled from -`auth_hostname` or `pp2_hostname`, `sp_auth_path`, `sp_auth_query` and `sp_auth_credentials`. +Most of MKWS's functionality is achieved by use of the Pazpar2 middleware. This is accessed on an endpoint URL which is usually +assembled from the two configuration sessings `pp2_hostname` and `pp2_path`. However, if for some reason an unusual Pazpar2 +endpoint must be used, that endpoint can be specified in the `pazpar2_url` setting, and that will be used instead. + +In the common case where Pazpar2 is accessed via the Service Proxy, an authentication call is made during initialisation. The call +is generally made to the same endpoint as the other requests. However, the hostname used for authentication may if necessary be +overridden using the `sp_auth_hostname` setting, and the path overridden by `sp_auth_path`. In any case, the value of +`sp_auth_query` is appended; and if `sp_auth_credentials` is set, then it is used to add username and password parameters. + +So in the absence of any configuration added by an application, the Service Proxy authentication URL is made up of `pp2_hostname` +(sp-mkws.indexdata.com) since `sp_auth_hostname` is undefined; and `pp2_path` (service-proxy/) since `sp_auth_path` is undefined; +and `sp_auth_query` (command=auth&action=perconfig); and no credentials, since `sp_auth_credentials` is undefined. Therefore the +URL `http://sp-mkws.indexdata.com/service-proxy/?command=auth&action=perconfig` is generated. Language specification ---------------------- diff --git a/src/mkws-core.js b/src/mkws-core.js index 1557d16..c331bc4 100644 --- a/src/mkws-core.js +++ b/src/mkws-core.js @@ -155,9 +155,9 @@ mkws.setMkwsConfig = function(overrides) { use_service_proxy: true, pazpar2_url: undefined, pp2_hostname: "sp-mkws.indexdata.com", - pp2_path: "service-proxy", + pp2_path: "service-proxy/", service_proxy_auth: undefined, - sp_auth_path: "service-proxy/", + sp_auth_path: undefined, sp_auth_query: "command=auth&action=perconfig", sp_auth_credentials: undefined, lang: "", @@ -246,7 +246,7 @@ mkws.pazpar2_url = function() { mkws.log("using pre-baked pazpar2_url '" + mkws.config.pazpar2_url + "'"); return mkws.config.pazpar2_url; } else { - var s = document.location.protocol + "//" + mkws.config.pp2_hostname + "/" + mkws.config.pp2_path + "/"; + var s = document.location.protocol + "//" + mkws.config.pp2_hostname + "/" + mkws.config.pp2_path; mkws.log("generated pazpar2_url '" + s + "'"); return s; } @@ -615,8 +615,9 @@ mkws.log("Using window.name '" + window.name + "'"); return config.service_proxy_auth; } else { var s = '//'; - s += config.auth_hostname ? config.auth_hostname : config.pp2_hostname; - s += '/' + config.sp_auth_path; + s += config.sp_auth_hostname ? config.sp_auth_hostname : config.pp2_hostname; + s += '/'; + s += config.sp_auth_path ? config.sp_auth_path : config.pp2_path; var q = config.sp_auth_query; if (q) { s += '?' + q;