As part of the abstraction [1] of SecurityRequest/SecurityResponse, changes were made for how headers were processed. OpenSearch's RestRequest object treats headers as a Map<String, List<String>> whereas in the refactor this was simplified to Map<String, String> This has caused some plugins that extend behavior of the security plugin to be broken.
SecurityResponse classes should switch to a Map<String, List<String>> representation so workarounds aren't needed in downstream consumers.
Acceptance Criteria
As part of the abstraction [1] of SecurityRequest/SecurityResponse, changes were made for how headers were processed. OpenSearch's RestRequest object treats headers as a
Map<String, List<String>>whereas in the refactor this was simplified toMap<String, String>This has caused some plugins that extend behavior of the security plugin to be broken.SecurityResponse classes should switch to a
Map<String, List<String>>representation so workarounds aren't needed in downstream consumers.Acceptance Criteria
Map<String, String> headers;toMap<String, List<String>> headers;