From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/wicket/AuthorizationStrategy.java | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/com/gitblit/wicket/AuthorizationStrategy.java b/src/com/gitblit/wicket/AuthorizationStrategy.java index b6b745b..21bd1b7 100644 --- a/src/com/gitblit/wicket/AuthorizationStrategy.java +++ b/src/com/gitblit/wicket/AuthorizationStrategy.java @@ -16,7 +16,7 @@ package com.gitblit.wicket; import org.apache.wicket.Component; -import org.apache.wicket.RestartResponseAtInterceptPageException; +import org.apache.wicket.RestartResponseException; import org.apache.wicket.authorization.IUnauthorizedComponentInstantiationListener; import org.apache.wicket.authorization.strategies.page.AbstractPageAuthorizationStrategy; @@ -24,7 +24,6 @@ import com.gitblit.Keys; import com.gitblit.models.UserModel; import com.gitblit.wicket.pages.BasePage; -import com.gitblit.wicket.pages.LoginPage; import com.gitblit.wicket.pages.RepositoriesPage; public class AuthorizationStrategy extends AbstractPageAuthorizationStrategy implements @@ -36,6 +35,12 @@ @SuppressWarnings({ "unchecked", "rawtypes" }) @Override protected boolean isPageAuthorized(Class pageClass) { + if (RepositoriesPage.class.equals(pageClass)) { + // allow all requests to get to the RepositoriesPage with its inline + // authentication form + return true; + } + if (BasePage.class.isAssignableFrom(pageClass)) { boolean authenticateView = GitBlit.getBoolean(Keys.web.authenticateViewPages, true); boolean authenticateAdmin = GitBlit.getBoolean(Keys.web.authenticateAdminPages, true); @@ -44,6 +49,7 @@ GitBlitWebSession session = GitBlitWebSession.get(); if (authenticateView && !session.isLoggedIn()) { // authentication required + session.cacheRequest(pageClass); return false; } @@ -54,7 +60,7 @@ if (authenticateAdmin) { // authenticate admin if (user != null) { - return user.canAdmin; + return user.canAdmin(); } return false; } else { @@ -73,12 +79,7 @@ @Override public void onUnauthorizedInstantiation(Component component) { if (component instanceof BasePage) { - GitBlitWebSession session = GitBlitWebSession.get(); - if (!session.isLoggedIn()) { - throw new RestartResponseAtInterceptPageException(LoginPage.class); - } else { - throw new RestartResponseAtInterceptPageException(RepositoriesPage.class); - } + throw new RestartResponseException(RepositoriesPage.class); } } } -- Gitblit v1.9.1