Inhalt eines XHTML Hidden Forms in Servlet korrekt auslesen

panzertape

Grünschnabel
Tach zusammen!

Ich habe da ein Problem, an dem ich jetzt schon ne Zeit sitze und an dem ich langsam verzweifle:

Ich habe ein Servlet. Eine Methode einer API encodiert mir eine XML-Nachricht:
"Encodes a SAML Message into an XHTML hidden form control. The message is encoded in Base64 format as specified by SAML. This control is written into the body of the servlet response."

Dies funktioniert auch wunderbar.

In einem zweiten Servlet will ich dann dieses Form empfangen, auslesen und an die decode-Methode übergeben:
"This method decodes a SAML message in Base64 format. This message has been expected to be retrieved from the relevant parameters in an HTTP Request, so the only work that is left to be done is to decode in back into SAMLObject form."

Mein Problem ist wohl das korrekte Auslesen des Forms:
BufferedInputStream in = new BufferedInputStream(request.getInputStream());
int c = -1;
String samltest = "";
String s = "";
while ( (c=in.read()) >= 0 )
{
char ch = (char)c;
s = Character.toString(ch);
samltest = samltest.concat(s);
samltest.trim();
}

Wenn ich den "samltest"-String ausgebe, enthält er auch den kodierten Form-Inhalt. Sobald ich aber diesen String an meine decode()-Methode übergebe kommt folgende Fehlermeldung:
"javax.servlet.ServletException: Failed to base64-decode message string, caused by The input is terminated illegally."

--------------------------------------------------------------------

Es werden anscheinend keine Parameter übertragen, denn mit request.getParameterNames() bekomme ich nur eine leere Enumeration zurück. Direkt den Parameter ansprechen (getParamter("SAMLRequest") ) funktioniert auch nicht.

Wieso wird das Form nicht als Parameter übertragen? Was könnte ich da falsch gemacht haben?

So siehts aus:
<form action="http://localhost:8084/testBindings/response.jsp" method="post">
<input type="hidden" name="SAMLRequest" value="ENCODEDVALUE" /><input type="submit" value="Continue"/>
</form>

Was läuft da schief Wie kann ich den Form-Inhalt korrekterweise auslesen, so dass der Input nicht "terminated illegally" ist

Irgendwelche Ideen?
Danke schonmal
Gruß
panzertape
 
Zurück