use of com.xpn.xwiki.web.XWikiServletResponse in project xwiki-platform by xwiki.
the class XWikiContextInitializationFilter method initializeXWikiContext.
/**
* Initializes the XWiki context.
*
* @param request the request being processed
* @param response the response
* @throws ServletException if the initialization fails
*/
protected void initializeXWikiContext(ServletRequest request, ServletResponse response) throws ServletException {
try {
// Not all request types specify an action (e.g. GWT-RPC) so we default to the empty string.
String action = "";
XWikiServletContext xwikiEngine = new XWikiServletContext(this.filterConfig.getServletContext());
XWikiServletRequest xwikiRequest = new XWikiServletRequest((HttpServletRequest) request);
XWikiServletResponse xwikiResponse = new XWikiServletResponse((HttpServletResponse) response);
// Create the XWiki context.
XWikiContext context = Utils.prepareContext(action, xwikiRequest, xwikiResponse, xwikiEngine);
// parameter is specified.
if (this.mode >= 0) {
context.setMode(this.mode);
}
// Initialize the Container component which is the new way of transporting the Context in the new component
// architecture. Further initialization might require the Container component.
initializeContainerComponent(context);
// Initialize the XWiki database. XWiki#getXWiki(XWikiContext) calls XWikiContext.setWiki(XWiki).
XWiki xwiki = XWiki.getXWiki(context);
// Initialize the URL factory.
context.setURLFactory(xwiki.getURLFactoryService().createURLFactory(context.getMode(), context));
// Prepare the localized resources, according to the selected language.
xwiki.prepareResources(context);
// Initialize the current user.
XWikiUser user = context.getWiki().checkAuth(context);
if (user != null) {
DocumentReferenceResolver<String> documentReferenceResolver = Utils.getComponent(DocumentReferenceResolver.TYPE_STRING, "explicit");
SpaceReference defaultUserSpace = new SpaceReference(XWiki.SYSTEM_SPACE, new WikiReference(context.getWikiId()));
DocumentReference userReference = documentReferenceResolver.resolve(user.getUser(), defaultUserSpace);
context.setUserReference(XWikiRightService.GUEST_USER.equals(userReference.getName()) ? null : userReference);
}
} catch (XWikiException e) {
throw new ServletException("Failed to initialize the XWiki context.", e);
}
}
use of com.xpn.xwiki.web.XWikiServletResponse in project xwiki-platform by xwiki.
the class DefaultXWikiStubContextProvider method initialize.
@Override
public void initialize(XWikiContext context) {
XWikiContext newContext = context.clone();
newContext.setCacheDuration(0);
newContext.setUserReference(null);
newContext.setLocale(null);
newContext.setWikiId(context.getMainXWiki());
// Cleanup
newContext.flushClassCache();
// So we force the dummy request with the current host
if (newContext.getRequest() != null) {
XWikiServletRequestStub initialRequest = new XWikiServletRequestStub();
initialRequest.setHost(newContext.getRequest().getHeader("x-forwarded-host"));
initialRequest.setScheme(newContext.getRequest().getScheme());
XWikiServletRequest request = new XWikiServletRequest(initialRequest);
newContext.setRequest(request);
}
// Get rid of the real response
if (newContext.getResponse() != null) {
XWikiServletResponseStub initialResponse = new XWikiServletResponseStub();
// anything to keep ?
XWikiServletResponse response = new XWikiServletResponse(initialResponse);
newContext.setResponse(response);
}
// We decide arbitrarily to use the Servlet URL Factory since it's the "standard" factory.
if (newContext.getURLFactory() != null) {
XWikiURLFactory urlf = newContext.getWiki().getURLFactoryService().createURLFactory(XWikiContext.MODE_SERVLET, context);
newContext.setURLFactory(urlf);
}
this.initialContext = newContext;
this.logger.debug("Stub context initialized.");
}
use of com.xpn.xwiki.web.XWikiServletResponse in project xwiki-platform by xwiki.
the class DefaultXWikiStubContextProvider method createStubContext.
@Override
public XWikiContext createStubContext() {
XWikiContext stubContext;
if (this.initialContext != null) {
stubContext = this.initialContext.clone();
// We make sure to not share the same Request instance with several threads
if (this.initialContext.getRequest() != null) {
XWikiServletRequestStub stubRequest = new XWikiServletRequestStub();
stubRequest.setHost(this.initialContext.getRequest().getHeader("x-forwarded-host"));
stubRequest.setScheme(this.initialContext.getRequest().getScheme());
XWikiServletRequest request = new XWikiServletRequest(stubRequest);
stubContext.setRequest(request);
}
// We make sure to not share the same Response instance with several threads
if (this.initialContext.getResponse() != null) {
XWikiServletResponseStub stubResponse = new XWikiServletResponseStub();
XWikiServletResponse response = new XWikiServletResponse(stubResponse);
stubContext.setResponse(response);
}
// We make sure to not share the same document instance with several threads
stubContext.setDoc(new XWikiDocument(this.defaultDocumentReferenceProvider.get()));
} else {
stubContext = null;
}
return stubContext;
}
use of com.xpn.xwiki.web.XWikiServletResponse in project xwiki-platform by xwiki.
the class DefaultXWikiContextInitializer method initializeXWikiContext.
private static XWikiContext initializeXWikiContext(HttpServletRequest request, HttpServletResponse response) throws XWikiException {
XWikiServletContext xwikiEngine = new XWikiServletContext(request.getServletContext());
XWikiServletRequest xwikiRequest = new XWikiServletRequest(request);
XWikiServletResponse xwikiResponse = new XWikiServletResponse(response);
// Create the XWiki context.
XWikiContext context = Utils.prepareContext("", xwikiRequest, xwikiResponse, xwikiEngine);
// Initialize the XWiki database. XWiki#getXWiki(XWikiContext) calls XWikiContext.setWiki(XWiki).
XWiki xwiki = XWiki.getXWiki(context);
// Initialize the URL factory.
context.setURLFactory(xwiki.getURLFactoryService().createURLFactory(context.getMode(), context));
// Prepare the localized resources, according to the selected language.
xwiki.prepareResources(context);
return context;
}
Aggregations