Re: problem with jsp - Base64 decode POST Parameter
On 21-09-2010 23:43, inetquestion wrote:
I am trying to piece together a jsp based on the original PHP code
below to base64 decode a post parameter called: SAMLResponse. The
decoded param should then be printed to the screen with a content type
of xml.
I am having problems getting this to work as I'm not very proficient
at java... The method "Base64.decode" does not appear to be a
standard library...
<%@ page import="java.util.*" %>
<%@ page contentType="application/xml" %>
<%
// Get POST param and decode into array
String base64Message = request.getParameter("SAMLResponse");
byte[] decodedBytes = Base64.decode(base64Message);
if (decodedBytes == null) {
String message = "Unable to Base64 decode SAML message";
log.error(message);
throw new MessageDecodingException(message);
}
// Convert the decoded byte[] to the original string and print the
result.
String decodedString = new String(decodedBytes);
System.out.println(decodedString);
%>
There are Base64 support in Java EE.
Method using that:
public static byte[] b64decode(String s) throws
MessagingException, IOException {
ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes());
InputStream b64is = MimeUtility.decode(bais, "Base64");
byte[] tmp = new byte[s.length()];
int n = b64is.read(tmp);
byte[] res = new byte[n];
System.arraycopy(tmp, 0, res, 0, n);
return res;
}
Arne