Same styling of photo albums as with tapestry based application.
[photos] / src / main / java / org / wamblee / photos / wicket / BasePage.java
index d4bdc115b3c0a57264c773f0b94c6009ce7f7d16..f6c63d00ccd104552e5e17047c48a40f3f8de390 100644 (file)
  */
 package org.wamblee.photos.wicket;
 
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.wicket.RedirectToUrlException;
 import org.apache.wicket.markup.html.CSSPackageResource;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
@@ -28,6 +32,9 @@ import org.wamblee.wicket.page.WebApplicationBasePage;
 
 public class BasePage extends WebApplicationBasePage {
 
+    @Inject
+    private HttpServletRequest request;
+
     private boolean isExpired = false;
 
     public BasePage() {
@@ -36,10 +43,14 @@ public class BasePage extends WebApplicationBasePage {
 
     public BasePage(IModel aModel) {
         super(aModel);
+
+        if (request.getUserPrincipal() == null) {
+            redirectToLoginPage();
+        }
+
         add(new ResetCssBehavior());
         add(new TitleAttributeTooltipBehavior());
-        add(CSSPackageResource.getHeaderContribution(BasePage.class,
-            "photos.css"));
+        add(CSSPackageResource.getHeaderContribution(BasePage.class, "photos.css"));
         disableCaching();
 
         add(new FeedbackPanel("feedback"));
@@ -56,10 +67,15 @@ public class BasePage extends WebApplicationBasePage {
             @Override
             public void onClick() {
                 getRequestCycle().getSession().invalidate();
+                throw redirectToLoginPage();
             }
         });
     }
 
+    private RedirectToUrlException redirectToLoginPage() {
+        return new RedirectToUrlException("login.jsp");
+    }
+
     public void setExpired(boolean aExpired) {
         isExpired = aExpired;
     }