From: John Fawcett Date: Wed, 3 Jan 2024 13:42:51 +0000 (+0100) Subject: fts-tika: Allow username and password in fts_tika X-Git-Tag: 2.4.0~1685 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=caabbf24793a5e4f82cf4d8a382de3cc5a1fc697;p=thirdparty%2Fdovecot%2Fcore.git fts-tika: Allow username and password in fts_tika Allows specification of username and password in the fts_tika setting for basic auth against tika server. For example fts_tika = https://user:password@tika_server:443/tika --- diff --git a/src/plugins/fts/fts-parser-tika.c b/src/plugins/fts/fts-parser-tika.c index 67dbabd799..f9b234e067 100644 --- a/src/plugins/fts/fts-parser-tika.c +++ b/src/plugins/fts/fts-parser-tika.c @@ -58,7 +58,7 @@ tika_get_http_client_url(struct fts_parser_context *parser_context, struct http_ tuser = p_new(user->pool, struct fts_parser_tika_user, 1); MODULE_CONTEXT_SET(user, fts_parser_tika_user_module, tuser); - if (http_url_parse(url, NULL, 0, user->pool, + if (http_url_parse(url, NULL, HTTP_URL_ALLOW_USERINFO_PART, user->pool, &tuser->http_url, &error) < 0) { e_error(event, "fts_tika: Failed to parse HTTP url %s: %s", url, error); return -1; @@ -159,6 +159,11 @@ fts_parser_tika_try_init(struct fts_parser_context *parser_context) http_url->host.name, t_strconcat(http_url->path, http_url->enc_query, NULL), fts_tika_parser_response, parser); + if (http_url->user != NULL) { + http_client_request_set_auth_simple( + http_req, http_url->user, http_url->password); + } + http_client_request_set_port(http_req, http_url->port); http_client_request_set_ssl(http_req, http_url->have_ssl); if (parser_context->content_type != NULL)