Change DocumentStorePhaseListener to allow downloads of IE over SSL
-------------------------------------------------------------------
Key: JBSEAM-4853
URL:
https://issues.jboss.org/browse/JBSEAM-4853
Project: Seam 2
Issue Type: Enhancement
Components: Core
Affects Versions: 2.2.2.Final
Reporter: Alberto Fernández
If you try to download a file (tried with excel files) over ssl with IE , it fails.
Changing the DocumentStorePhaseListener and changing the headers 'Cache-Control'
and 'Pragma' makes it work.
public void sendContent(FacesContext context, String contentId) {
try {
DocumentData documentData =
DocumentStore.instance().getDocumentData(contentId);
if (documentData != null) {
HttpServletResponse response = (HttpServletResponse)
context.getExternalContext().getResponse();
HttpServletRequest request = (HttpServletRequest)
context.getExternalContext().getRequest();
boolean isIE = false;
if( request != null) {
String useragent = request.getHeader("User-Agent");
isIE = (useragent != null &&
useragent.indexOf("MSIE") >= 0);
}
response.setContentType(documentData.getDocumentType().getMimeType());
response.setHeader("Content-Disposition",
documentData.getDisposition() + "; filename=\"" +
documentData.getFileName() + "\"");
if (isIE) {
response.setHeader("Cache-control", "must-revalidate,
post-check=0, pre-check=0");
response.setHeader("Pragma", null);
}
documentData.writeDataToStream(response.getOutputStream());
context.responseComplete();
}
} catch (IOException e) {
log.warn(e);
}
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira