public boolean handleGetMsgContent(HttpServletRequest request, HttpServletResponse response) { copyToSession(request, this.getMsgContentParams); HttpSession session = request.getSession(); boolean getMsg = session.getAttribute("getMessageContent") != null; if (!getMsg) return false; try { OAuthToken token = getSessionToken(request, response); if (token == null) { return true; } String msgId = (String) session.getAttribute("messageId"); String partNum = (String) session.getAttribute("partNumber"); IMMNService srvc = new IMMNService(appConfig.getApiFQDN(), token); MessageContent msg = srvc.getMessageContent(msgId, partNum); String content = ""; String type = msg.getContentType().toLowerCase(); if (type.contains("image")) { byte[] binary = msg.getContent().getBytes("ISO-8859-1"); String base64 = new String(Base64.encodeBase64(binary)); content = "<img src=\"data:" + msg.getContentType() + ";base64," + base64 + "\"/>"; } else if (type.contains("video")) { byte[] binary = msg.getContent().getBytes("ISO-8859-1"); String base64 = new String(Base64.encodeBase64(binary)); content = "<video controls=\"controls\" autobuffer=\"autobuffer\" autoplay=\"autoplay\">"; content += "<source src=\"data:" + msg.getContentType() + ";base64," + base64 + "\" >"; content += "</video>"; } else if (type.contains("audio")) { byte[] binary = msg.getContent().getBytes("ISO-8859-1"); String base64 = new String(Base64.encodeBase64(binary)); content = "<audio controls=\"controls\" autobuffer=\"autobuffer\" autoplay=\"autoplay\">"; content += "<source src=\"data:" + msg.getContentType() + ";base64," + base64 + "\" >"; content += "</audio>"; } else if (type.contains("text")) { content = msg.getContent(); } else { content = "Unknown content type!"; } request.setAttribute("msgContent", content); clearSession(request, this.getMsgContentParams); } catch (Exception e) { clearSession(request, this.getMsgContentParams); request.setAttribute("msgContentError", e.getMessage()); } finally { request.setAttribute("toggleDiv", "getMsg"); } return false; }