From: Adam Dickmeiss Date: Tue, 13 Aug 2013 09:07:28 +0000 (+0200) Subject: pz:authentication may carry user group password PAZ-885 X-Git-Tag: v1.6.33~5 X-Git-Url: http://sru.miketaylor.org.uk/?a=commitdiff_plain;h=9907f1b6ede0d789a7b794d3eab873ee257a3c4e;p=pazpar2-moved-to-github.git pz:authentication may carry user group password PAZ-885 If pz:authentication has at least one blank in it, that forces Pazpar2 to use idPass Z39.50 authentication. Two forms are allowed user password user group password If no blanks are present, open authentication is in use. --- diff --git a/src/connection.c b/src/connection.c index d5b5be2..465693e 100644 --- a/src/connection.c +++ b/src/connection.c @@ -441,7 +441,24 @@ static int connection_connect(struct connection *con, iochan_man_t iochan_man) ZOOM_options_set(zoptions, "apdulog", apdulog); if ((auth = session_setting_oneval(sdb, PZ_AUTHENTICATION))) - ZOOM_options_set(zoptions, "user", auth); + { + const char *cp1 = strchr(auth, ' '); + if (!cp1) + ZOOM_options_set(zoptions, "user", auth); + else + { + const char *cp2 = strchr(cp1 + 1, ' '); + + ZOOM_options_setl(zoptions, "user", auth, cp1 - auth); + if (!cp2) + ZOOM_options_set(zoptions, "password", cp1 + 1); + else + { + ZOOM_options_setl(zoptions, "group", cp1 + 1, cp2 - cp1 - 1); + ZOOM_options_set(zoptions, "password", cp2 + 1); + } + } + } if ((sru = session_setting_oneval(sdb, PZ_SRU)) && *sru) ZOOM_options_set(zoptions, "sru", sru); if ((sru_version = session_setting_oneval(sdb, PZ_SRU_VERSION))