Opened 7 years ago
Closed 7 years ago
#2089 closed defect (fixed)
Can't select bioplate in sample edit dialog
Reported by: | Nicklas Nordborg | Owned by: | everyone |
---|---|---|---|
Priority: | critical | Milestone: | BASE 3.11.1 |
Component: | web | Version: | |
Keywords: | Cc: |
Description
The dialog is opened but remains blank. The debug console in firefox shows "Status 400" in the Network tab. On the server side there is a log entry in the stderr file:
01-Jun-2017 10:32:12.502 INFO [http-nio-9080-exec-3] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:472) ...
Initial investigations seems to indicate that it is a problem with the pipe (|) character in the URL that used to work, but newer Tomcat versions seems to be more picky: https://stackoverflow.com/questions/41053653/tomcat-8-is-not-able-to-handle-get-request-with-in-query-parameters
The solutions seems to be to escape the pipe character. The hard part is to find all places where we have used this. Similar constructs may have been used in plug-ins and extensions as well. For example, the "Manual select" function in the "Create mRNA plate" wizard in Reggie has this problem.
(In [7383]) Fixes #2089: Can't select bioplate in sample edit dialog
I hope I have found all places that create URLs with '|' in them. The should now be escaped to '%7C'