src/main/java/com/gitblit/wicket/AuthorizationStrategy.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/gitblit/wicket/GitBlitWebApp.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/gitblit/wicket/pages/BasePage.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/gitblit/wicket/pages/DashboardPage.java | ●●●●● patch | view | raw | blame | history |
src/main/java/com/gitblit/wicket/AuthorizationStrategy.java
@@ -19,6 +19,7 @@ import org.apache.wicket.RestartResponseException; import org.apache.wicket.authorization.IUnauthorizedComponentInstantiationListener; import org.apache.wicket.authorization.strategies.page.AbstractPageAuthorizationStrategy; import org.apache.wicket.markup.html.WebPage; import com.gitblit.GitBlit; import com.gitblit.Keys; @@ -28,13 +29,16 @@ public class AuthorizationStrategy extends AbstractPageAuthorizationStrategy implements IUnauthorizedComponentInstantiationListener { public AuthorizationStrategy() { Class<? extends WebPage> homepageClass; public AuthorizationStrategy(Class<? extends WebPage> homepageClass) { this.homepageClass = homepageClass; } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override protected boolean isPageAuthorized(Class pageClass) { if (GitBlitWebApp.HOME_PAGE_CLASS.equals(pageClass)) { if (homepageClass.equals(pageClass)) { // allow all requests to get to the HomePage with its inline // authentication form return true; @@ -79,7 +83,7 @@ public void onUnauthorizedInstantiation(Component component) { if (component instanceof BasePage) { throw new RestartResponseException(GitBlitWebApp.HOME_PAGE_CLASS); throw new RestartResponseException(homepageClass); } } } src/main/java/com/gitblit/wicket/GitBlitWebApp.java
@@ -20,7 +20,6 @@ import java.util.Map; import org.apache.wicket.Application; import org.apache.wicket.Page; import org.apache.wicket.Request; import org.apache.wicket.Response; import org.apache.wicket.Session; @@ -31,7 +30,6 @@ import com.gitblit.Keys; import com.gitblit.utils.StringUtils; import com.gitblit.wicket.pages.ActivityPage; import com.gitblit.wicket.pages.BasePage; import com.gitblit.wicket.pages.BlamePage; import com.gitblit.wicket.pages.BlobDiffPage; import com.gitblit.wicket.pages.BlobPage; @@ -69,7 +67,7 @@ public class GitBlitWebApp extends WebApplication { public final static Class<? extends BasePage> HOME_PAGE_CLASS = MyDashboardPage.class; private final Class<? extends WebPage> homePageClass = MyDashboardPage.class; private final Map<String, CacheControl> cacheablePages = new HashMap<String, CacheControl>(); @@ -81,7 +79,7 @@ boolean useAuthentication = GitBlit.getBoolean(Keys.web.authenticateViewPages, false) || GitBlit.getBoolean(Keys.web.authenticateAdminPages, false); if (useAuthentication) { AuthorizationStrategy authStrategy = new AuthorizationStrategy(); AuthorizationStrategy authStrategy = new AuthorizationStrategy(homePageClass); getSecuritySettings().setAuthorizationStrategy(authStrategy); getSecuritySettings().setUnauthorizedComponentInstantiationListener(authStrategy); } @@ -158,8 +156,8 @@ } @Override public Class<? extends Page> getHomePage() { return HOME_PAGE_CLASS; public Class<? extends WebPage> getHomePage() { return homePageClass; } public boolean isCacheablePage(String mountPoint) { src/main/java/com/gitblit/wicket/pages/BasePage.java
@@ -212,7 +212,7 @@ add(new Label("title", siteName)); } String rootLinkUrl = GitBlit.getString(Keys.web.rootLink, urlFor(GitBlitWebApp.HOME_PAGE_CLASS, null).toString()); String rootLinkUrl = GitBlit.getString(Keys.web.rootLink, urlFor(GitBlitWebApp.get().getHomePage(), null).toString()); ExternalLink rootLink = new ExternalLink("rootLink", rootLinkUrl); WicketUtils.setHtmlTooltip(rootLink, GitBlit.getString(Keys.web.siteName, Constants.NAME)); add(rootLink); src/main/java/com/gitblit/wicket/pages/DashboardPage.java
@@ -146,7 +146,7 @@ PageParameters params = getPageParameters(); DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters", GitBlitWebApp.HOME_PAGE_CLASS); GitBlitWebApp.get().getHomePage()); // preserve repository filter option on time choices menu.menuItems.addAll(getTimeFilterItems(params));