/******************************************************************************* * Copyright 2013 * Ubiquitous Knowledge Processing (UKP) Lab * Technische Universität Darmstadt * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package de.tudarmstadt.ukp.csniper.webapp; import org.apache.wicket.Page; import org.apache.wicket.authorization.strategies.CompoundAuthorizationStrategy; import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication; import org.apache.wicket.authroles.authentication.AuthenticatedWebSession; import org.apache.wicket.authroles.authorization.strategies.role.annotations.AnnotationsRoleAuthorizationStrategy; import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.resource.CssResourceReference; import org.apache.wicket.request.resource.ResourceReference; import org.apache.wicket.spring.injection.annot.SpringComponentInjector; import org.apache.wicket.util.time.Duration; import org.odlabs.wiquery.ui.themes.WiQueryCoreThemeResourceReference; import de.tudarmstadt.ukp.csniper.webapp.analysis.page.AnalysisPage; import de.tudarmstadt.ukp.csniper.webapp.evaluation.page.EvaluationPage; import de.tudarmstadt.ukp.csniper.webapp.page.login.LoginPage; import de.tudarmstadt.ukp.csniper.webapp.page.welcome.WelcomePage; import de.tudarmstadt.ukp.csniper.webapp.project.page.AnnotationTypePage; import de.tudarmstadt.ukp.csniper.webapp.project.page.ProjectPage; import de.tudarmstadt.ukp.csniper.webapp.search.page.SearchPage; import de.tudarmstadt.ukp.csniper.webapp.security.SpringAuthenticatedWebSession; import de.tudarmstadt.ukp.csniper.webapp.security.page.ManageUsersPage; import de.tudarmstadt.ukp.csniper.webapp.statistics.page.StatisticsPage; import de.tudarmstadt.ukp.csniper.webapp.statistics.page.StatisticsPage2; /** * Application object for your web application. If you want to run this application without * deploying, run the Start class. */ public class WicketApplication extends AuthenticatedWebApplication { boolean isInitialized = false; private ResourceReference theme; public WicketApplication() { // theme = new WiQueryCoreThemeResourceReference("redlion"); // cannot use above line, because it uses jquery-ui-1.8.24, for which we don't have redlion theme = new CssResourceReference(WiQueryCoreThemeResourceReference.class, "redlion" + "/jquery-ui-1.8.16.custom.css"); } @Override public void init() { addResourceReplacement(WiQueryCoreThemeResourceReference.get(), theme); if (!isInitialized) { super.init(); getRequestCycleSettings().setTimeout(Duration.minutes(10)); getComponentInstantiationListeners().add(new SpringComponentInjector(this)); CompoundAuthorizationStrategy autr = new CompoundAuthorizationStrategy(); autr.add(new AnnotationsRoleAuthorizationStrategy(this)); autr.add(new MetaDataRoleAuthorizationStrategy(this)); getSecuritySettings().setAuthorizationStrategy(autr); mountPage("/login.html", getSignInPageClass()); mountPage("/analysis.html", AnalysisPage.class); mountPage("/evaluation.html", EvaluationPage.class); mountPage("/project.html", ProjectPage.class); mountPage("/type.html", AnnotationTypePage.class); mountPage("/statistics.html", StatisticsPage.class); mountPage("/statistics2.html", StatisticsPage2.class); // mountPage("/export.html", ExportPage.class); mountPage("/search.html", SearchPage.class); mountPage("/welcome.html", getHomePage()); // mountPage("/exportHtml.html", ExportHtmlPage.class); mountPage("/users.html", ManageUsersPage.class); isInitialized = true; } } /** * @see org.apache.wicket.Application#getHomePage() */ @Override public Class<? extends Page> getHomePage() { return WelcomePage.class; } @Override public Class<? extends WebPage> getSignInPageClass() { return LoginPage.class; } @Override protected Class<? extends AuthenticatedWebSession> getWebSessionClass() { return SpringAuthenticatedWebSession.class; } }