You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2007/11/01 16:30:15 UTC
svn commit: r591053 -
/incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/servlet/MicroslingMainServlet.java
Author: fmeschbe
Date: Thu Nov 1 08:30:14 2007
New Revision: 591053
URL: http://svn.apache.org/viewvc?rev=591053&view=rev
Log:
SLING-88 Redirect requests to / to the welcome page
Modified:
incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/servlet/MicroslingMainServlet.java
Modified: incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/servlet/MicroslingMainServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/servlet/MicroslingMainServlet.java?rev=591053&r1=591052&r2=591053&view=diff
==============================================================================
--- incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/servlet/MicroslingMainServlet.java (original)
+++ incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/servlet/MicroslingMainServlet.java Thu Nov 1 08:30:14 2007
@@ -19,6 +19,7 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
+
import javax.jcr.Credentials;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
@@ -55,6 +56,15 @@
private static final long serialVersionUID = 1L;
+ // the name of init-param providing the page to redirect / to
+ private static final String INIT_PARAM_WELCOME_URL = "welcome-url";
+
+ // The default page to redirect / to if not configured in web.xml
+ private static final String DEFAULT_INDEX_PAGE = "index.html";
+
+ // The page to redirect /, configured from welcome-url init-param
+ private String indexPage = DEFAULT_INDEX_PAGE;
+
private MicroSlingFilterHelper filterChain;
private MicroslingServiceLocator serviceLocator;
@@ -69,6 +79,12 @@
public void init() throws ServletException {
super.init();
+ // define the indexPage
+ indexPage = getServletConfig().getInitParameter(INIT_PARAM_WELCOME_URL);
+ if (indexPage == null) {
+ indexPage = DEFAULT_INDEX_PAGE;
+ }
+
// this must be first as services may register later
initServiceLocator();
@@ -137,12 +153,24 @@
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
+ HttpServletRequest hReq = (HttpServletRequest) req;
+ HttpServletResponse hRes = (HttpServletResponse) resp;
+
+ // root redirect
+ if (hReq.getPathInfo() == null) {
+ hRes.sendRedirect(hReq.getRequestURI() + "/" + indexPage);
+ return;
+ } else if ("/".equals(hReq.getPathInfo())) {
+ hRes.sendRedirect(indexPage);
+ return;
+ }
+
Session session = authenticate(req);
MicroslingSlingHttpServletRequest request = new MicroslingSlingHttpServletRequest(
- (HttpServletRequest) req, session, serviceLocator);
+ hReq, session, serviceLocator);
MicroslingSlingHttpServletResponse response = new MicroslingSlingHttpServletResponse(
- (HttpServletResponse) resp);
+ hRes);
// our filters might need the SlingRequestContext to store info in it
filterChain.service(request, response);