Task #1162
Bug #1141: unicode guid handling in mn.create()
override getPathInfo to replace censored characters
100%
Description
The Tomcat URI normalization process censors ";" and replaces some char sequences such as "//" with "/" resulting in mangled information being forwarded through request.getPathInfo(). The uncensored information is available through request.getRequestURI() however.
This task is to implement a custom HttpServletRequestWrapper which overrides getPathInfo() so that it returns the uncensored path information.
For example, given a request something like:
http://my.node/mn/object/http:%2F%2fsome.id%2Fof;interest
where the identifier is "http://some.id/of;interest", the normal tomcat request.getPathInfo() returns:
/object/http:/some.id/of
compressing "//" to "/" and truncating at ";"
The value returned by request.getRequestURI() is:
/mn/object/http:%2F%2fsome.id%2Fof;interest
So basically what is needed is to:
- remove the servlet from the front of the path
- urldecode the remaining info
- return the result.
History
#1 Updated by Chad Berkley almost 14 years ago
- Status changed from New to Closed
- Assignee changed from Robert Waltz to Chad Berkley
- % Done changed from 0 to 100
This is now fixed in metacat.