POST being changed to GET when using SSL?

I have a very simple requirement (or at least I thought it was simple). I am working with an outside company to expose a service for employment verification. Basically, they are going to send an XML message via an HTTP POST. SSL is a requirement. There’s no flexibility on either point, it has to be a POST with SSL.

In my testing, I have an agent that basically reads the Request_Content CGI variable and echos it back to the screen with a Print. No problem, as long as there is no SSL involved. The minute I switched on the flag “Require SSL Connection” on the database properties, this simple agent stopped working.

When I was debugging, I echoed a number of other CGI variables to the screen and I came across a strange thing. The Request_Method was different depending on whether SSL was being used or not. If Require SSL Connection is turned on, it appears to change my HTTP POST to a GET (even though the page I used to submit the request, clearly specifed that it was a POST).

Does anyone have a clue why it appears to be redirecting my POST to a GET and more importantly, how can I workaround? As I said before, POST is a requirement. Some sample code is below.

Thank you.

Mike


HTML Page in Database1, make sure that the Web Access → Content Type in the page properties is set to HTML

Prototype POST Request

Prototype POST Request

Paste XML here, replacing this prompt

Parsing agent in Database2

Sub Initialize

Dim session As New NotesSession

Dim doc As NotesDocument



Set doc = session.DocumentContext



Print "<u>Request_Method</u><br>" + doc.GetItemValue("Request_Method")(0)

Print "<br><br>"

Print "<u>Request_Content</u><br>" + doc.GetItemValue("request_content")(0)

End Sub


Sample output (where Database2 is not forcing SSL)

Request_Method

POST

Request_Content

request_xml=This+is+a+test


Sample output (where Database2 is forcing SSL)

Request_Method

GET

Request_Content

Subject: POST being changed to GET when using SSL?

The agent may process a POST, but it doesn’t require one, and the request may be getting dropped in the redirection. If all that’s there is a request for a URL, well, that’s a GET whether there’s a query string involved or not. Try replacing the action with the https version of the URL.

Subject: RE: POST being changed to GET when using SSL?

Thanks for the reply Stan.

I had already tried to modify the url in the post action to https (vs. http) and that did not work. However your post did generate another idea.

I changed the http to https as you suggested, but then I took off the “Force SSL Connection” on the database properties. That combination gave me the desired results. Apparently that property must force some sort of redirection.

Thank you.

Mike