From 9907f1b6ede0d789a7b794d3eab873ee257a3c4e Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Tue, 13 Aug 2013 11:07:28 +0200 Subject: [PATCH] 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. --- src/connection.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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)) -- 1.7.10.4