From 629bd8688ba153aa931119dbbb5c3d35d9f7627a Mon Sep 17 00:00:00 2001 From: Daijiro Fukuda Date: Thu, 10 Apr 2025 15:25:28 +0900 Subject: [PATCH] in_http: replace WEBrick::HTTPUtils.parse_query with URI WEBrick is no longer recommended for production use. WEBrick::HTTPUtils is just a util, so it might be harmless. However, it would be happy to reduce dependence if possible. Signed-off-by: Daijiro Fukuda --- lib/fluent/plugin/in_http.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/fluent/plugin/in_http.rb b/lib/fluent/plugin/in_http.rb index a0dfb86884..8d7066c6a0 100644 --- a/lib/fluent/plugin/in_http.rb +++ b/lib/fluent/plugin/in_http.rb @@ -531,12 +531,12 @@ def on_message_complete @env['REMOTE_ADDR'] = @remote_addr if @remote_addr uri = URI.parse(@parser.request_url) - params = WEBrick::HTTPUtils.parse_query(uri.query) + params = parse_query(uri.query) if @format_name != 'default' params[EVENT_RECORD_PARAMETER] = @body elsif /^application\/x-www-form-urlencoded/.match?(@content_type) - params.update WEBrick::HTTPUtils.parse_query(@body) + params.update parse_query(@body) elsif @content_type =~ /^multipart\/form-data; boundary=(.+)/ boundary = WEBrick::HTTPUtils.dequote($1) params.update WEBrick::HTTPUtils.parse_form_data(@body, boundary) @@ -553,7 +553,7 @@ def on_message_complete if (@add_query_params) - query_params = WEBrick::HTTPUtils.parse_query(uri.query) + query_params = parse_query(uri.query) query_params.each_pair {|k,v| params["QUERY_#{k.tr('-','_').upcase}"] = v @@ -643,6 +643,10 @@ def include_cors_allow_origin !r.nil? end + + def parse_query(query) + query.nil? ? {} : Hash[URI.decode_www_form(query, Encoding::ASCII_8BIT)] + end end end end