Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium GLASS-Server Version-GLASS0.231

New issue 239 by norbert.hartl: using WAFastCGIAdaptor leads the false  
conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

What steps will reproduce the problem?
1. Use WAFastCGIAdaptor as web server
2. send an url with a query string of '?key=a%2Bc
3. inspect the resulting url in a request handler

What is the expected output? What do you see instead?

The value of the key parameter should be 'a+c' instead you get 'a c'

What version of the product are you using? On what operating system?

GS 2.4.4.1

Please provide any additional information below.

The error occurs because there is a double decoding attempt.  
WAFastCGIRequestConverter>>requestUrlFor: converts the string the first  
time. After that you converted 'a%2Bc' to 'a+c'. After that WAUrl  
class>>absolute: is called which converts the string again.


Reply | Threaded
Open this post in threaded view
|

Re: Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb

Comment #1 on issue 239 by norbert.hartl: using WAFastCGIAdaptor leads the  
false conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

Name: Seaside-Adaptors-FastCGI-NorbertHartl.24
Author: NorbertHartl
Time: 02/11/2011, 14:30:06
UUID: 8f5bd42c-14b8-4e53-888c-3c5585ff3bdb
Ancestors: Seaside-Adaptors-FastCGI-DaleHenrichs.23

fixed a bug (google issue #239) where the fast cgi adaptor double decodes  
url string. In case of space which can be encoded as + this fails if  
someone sends an encoded + sign (%2B). It will  be decoded %2B -> + ->  
space.


Reply | Threaded
Open this post in threaded view
|

Re: Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb
Updates:
        Status: Accepted
        Labels: -Version-GLASS0.231 Version-1.0-beta.8 Milestone-1.0-beta.8.6

Comment #2 on issue 239 by [hidden email]: using WAFastCGIAdaptor leads  
the false conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

I'll include this in the forthcoming Seaside 3.0.4 release

Reply | Threaded
Open this post in threaded view
|

Re: Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb
Updates:
        Status: Fixed
        Labels: Fixed-1.0-beta.8.6

Comment #3 on issue 239 by [hidden email]: using WAFastCGIAdaptor leads  
the false conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

integrated into Seaside 3.0.4:

Name: ConfigurationOfSeaside30-DaleHenrichs.291
Author: DaleHenrichs
Time: 02/11/2011, 17:45:28
UUID: 3f8954b2-2e16-41cf-847d-b0bf6321eddd
Ancestors: ConfigurationOfSeaside30-DaleHenrichs.290


Reply | Threaded
Open this post in threaded view
|

Re: Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb
Updates:
        Status: Started

Comment #4 on issue 239 by [hidden email]: using WAFastCGIAdaptor leads  
the false conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

It appears that this bugfix breaks the WAEncodingFunctionalTest in  
Seaside3.0.4 (haven't testing in Seaside3.0.3 yet). If you paste the  
following text into the Get input box you get the wrong decoding:

Я могу есть стекло, оно мне не вредит.

If I back out the changes, I get the correct encoding... will need to look  
at this one a bit more...

Reply | Threaded
Open this post in threaded view
|

Re: Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb
Updates:
        Owner: [hidden email]

Comment #5 on issue 239 by [hidden email]: using WAFastCGIAdaptor leads  
the false conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

The correct fix is to use decodedWith: after creating the WAUrl instance:

   ^(WAUrl absolute: ( aNativeRequest params at: 'REQUEST_URI'))
         decodedWith: self codec

It looks like the "approved" way of writing adaptors changed about 3 months  
after I wrote the FastCGI adaptor...it appears that the new way is much  
simpler:)

Reply | Threaded
Open this post in threaded view
|

Re: Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb
Updates:
        Status: Fixed

Comment #6 on issue 239 by [hidden email]: using WAFastCGIAdaptor leads  
the false conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

- cleaned things up a bit in addition to including the above mentioned fix
- log requests in ObjectLog when in debug mode in WAFastCGIAdaptor
- use faster algorithm from WAUrl class>>decodePercent:, but still need  
error handler

Name: Grease-GemStone-Core-DaleHenrichs.35
Author: DaleHenrichs
Time: 02/16/2011, 16:08:09
UUID: cfb79a92-f40f-4b0d-9112-3c2e92b49a33
Ancestors: Grease-GemStone-Core-DaleHenrichs.34

Name: Seaside-Adaptors-FastCGI-DaleHenrichs.25
Author: DaleHenrichs
Time: 02/16/2011, 16:10:41
UUID: fde3af22-5c8a-4d47-8445-5e44b2ef5ad6
Ancestors: Seaside-Adaptors-FastCGI-NorbertHartl.24


Reply | Threaded
Open this post in threaded view
|

Re: Issue 239 in glassdb: using WAFastCGIAdaptor leads the false conversion of + in urls.

glassdb

Comment #7 on issue 239 by [hidden email]: using WAFastCGIAdaptor leads  
the false conversion of + in urls.
http://code.google.com/p/glassdb/issues/detail?id=239

fix will be available in Seaside 3.0.4