}
*/
+ 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;
+ var q = config.sp_auth_query;
+ if (q) {
+ s += '?' + q;
+ }
+ var c = config.sp_auth_credentials;
+ 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(sp_auth_url(mkws.config),
- mkws.config.service_proxy_auth_domain,
- mkws.config.pazpar2_url);
- }
- } else {
- // raw pp2
+ if (mkws.config.use_service_proxy && !mkws.authenticated && !mkws.authenticating) {
- authenticateSession(mkws.config.service_proxy_auth,
++ authenticateSession(sp_auth_url(mkws.config),
+ mkws.config.service_proxy_auth_domain,
+ mkws.config.pazpar2_url);
+ } else if (!mkws.authenticating) {
+ // raw pp2 or we have a session already open
runAutoSearches();
}