]
Nick Belaevski commented on RF-7984:
------------------------------------
Filter is not used in RF 4.x anymore.
I would be nice to have the BaseXML redirecting-code in a util-class
--------------------------------------------------------------------
Key: RF-7984
URL:
https://jira.jboss.org/browse/RF-7984
Project: RichFaces
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: core
Affects Versions: 3.3.2.GA
Reporter: Andreas Höhmann
Assignee: Nick Belaevski
Priority: Minor
I wrote a special spring security entry point to handle missing authentication *after* a
a4j-request:
/**
* {@inheritDoc}
*/
@Override
protected void sendRedirect(final HttpServletRequest theRequest, final
HttpServletResponse theResponse,
final String theUrl) throws IOException {
if (!isAjaxRequest(theRequest)) {
LOG.debug("normal redirect to " + theUrl);
super.sendRedirect(theRequest, theResponse, theUrl);
} else {
LOG.debug("ajax redirect to " + theUrl);
final FilterServletResponseWrapper servletResponseWrapper = new
FilterServletResponseWrapper(theResponse);
final Writer output = resetResponse(theResponse, servletResponseWrapper,
"redirect");
theResponse.setHeader(AjaxContainerRenderer.AJAX_LOCATION_HEADER, theUrl);
// For buggy XmlHttpRequest realisations repeat headers in
// <meta>
output.write("<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n"
+ "<html
xmlns=\"http://www.w3.org/1999/xhtml\"><head>" + "<meta
name=\""
+ AjaxContainerRenderer.AJAX_FLAG_HEADER + "\"
content=\"redirect\" />" + "<meta name=\""
+ AjaxContainerRenderer.AJAX_LOCATION_HEADER + "\"
content=\"" + theUrl + "\" />" +
"</head></html>");
output.flush();
theResponse.flushBuffer();
}
}
Currently i'm must copy the redirecting-code from org.ajax4jsf.webapp.BaseXMLFilter
to reuse it.
It would be nice to have a "A4JResponseUtils" with this methods:
- boolean isAjaxRequest(final ServletRequest request)
- void sendRedirect(final HttpServletRequest theRequest, final HttpServletResponse
theResponse, final String theUrl)
The advantage of such a utils-class would be a always compatibly thirdparty code
(integration code), if the redirecting-code changes in a4j my code should still work :D
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: