Aug 21, 2015 8:51 AM
191 Posts

Some info

  • Category: Domino Server
  • Platform: All Platforms
  • Release: 9.0.1
  • Role: Developer
  • Tags: http java osgi xpages
  • Replies: 3
I'm not familiar with this area of the product, but I did find what appears to be a very similar SPR from the 8.5.2 timeframe. Here are the details on that case:

When using a url that contains encoded / in a segment, the encoded / is wrongly decoded by getRequestURI, causing behaviour problem in ISV API

Steps to reproduce:
use the following url from a browser: http://localhost/sample.nsf/api/data/documents/form/test%2Fform atom+xml 小野 充/
In the http request, the url is encoded as : http://localhost/sample.nsf/api/data/documents/form/test%2Fform%20atom+xml%20%E5%B0%8F%E9%87%8E%20%E5%85%85/
In the Domino Web Container, get RequestURI() returns:  http://localhost/sample.nsf/api/data/documents/form/test/form atom+xml 小野 充/

In one segment of the url, we use a form name called test/form atom+xml 小野 充. Notice that the %2F which is part of a segment of the original url is transformed in /, causing the ISV Api to not find the form name.

According to the servlet api spec: the following function should not be decoded by the webcontainer:
getRequestURI
getContextPath()
getQueryString()

The SPR is DTAB82LPFP, and it was fixed in 8.5.2. Assuming this is related to the issue you are reporting, it would seem the fix doesn't cover all cases, and we'd need to open a PMR to take a look. I didn't see any other ways to get the raw string, and since the behavior violated the specification, I would think there isn't another way outside of those standard APIs.