bug: request get Args params
Opened this issue · 0 comments
Issue description
Environment
- Operating System: Windows 11
- JDK Version: 17
*IDE: IntelliJ IDEA 2024.1.4U - APISIX Java Plugin Runner Version: 0.4.0
- Maven Dependency
Minimal test code / Steps to reproduce the issue
When using the getArgs method of the org.apache.apisix.plugin.runner.HttpRequest class, the returned parameter type is Map<String, String>. The expected behavior is for it to return a parameter type consistent with the getParameterMap method of the jakarta.servlet.ServletRequestWrapper class, which is Map<String, String[]>.
Steps to Reproduce the Issue
Set the Maven dependency to apisix-runner-starter version 0.4.0.
Use the HttpRequest.getArgs() method in the APISIX Java Plugin to retrieve parameters.
Submit multiple parameters with the same key using a GET method or POST form.
What's the actual result? (including assertion message & call stack if applicable)
- HttpRequest.getArgs() returns parameters as Map<String, String>.
- When using GET or POST forms with multiple parameters having the same key, previous key-value pairs are lost, and only the last key-value pair is retained.
What's the expected result?
HttpRequest.getArgs() should return parameters as Map<String, String[]>, matching the behavior of jakarta.servlet.ServletRequestWrapper.getParameterMap() and correctly retaining all values for the same key.