/** @see org.apache.wicket.Application#init() */ @Override public void init() { super.init(); if (RuntimeConfigurationType.DEVELOPMENT.equals(getConfigurationType())) { getDebugSettings().setAjaxDebugModeEnabled(true); getDebugSettings().setDevelopmentUtilitiesEnabled(true); } // add your configuration here // TODO - create profilers filesystem }
/** Sets the application configurations. */ protected void onApplicationConfigurations() { // set configuration before the application configuration... onBeforeApplicationConfigurations(); // set global configurations for both development and deployment mode... onGlobalSettings(); // set configuration for development... if (RuntimeConfigurationType.DEVELOPMENT.equals(this.getConfigurationType())) { onDevelopmentModeSettings(); } // set configuration for deployment... if (RuntimeConfigurationType.DEPLOYMENT.equals(this.getConfigurationType())) { onDeploymentModeSettings(); } }
@Override public void init() { super.init(); getFrameworkSettings().setSerializer(new Fast2WicketSerializer()); getJavaScriptLibrarySettings() .setJQueryReference( new PackageResourceReference( MidPointApplication.class, "../../../../../webjars/adminlte/2.3.0/plugins/jQuery/jQuery-2.1.4.min.js")); GuiComponents.init(); getComponentInstantiationListeners().add(new SpringComponentInjector(this)); ResourceSettings resourceSettings = getResourceSettings(); resourceSettings.setParentFolderPlaceholder("$-$"); resourceSettings.setHeaderItemComparator(new PriorityFirstComparator(true)); SecurePackageResourceGuard guard = (SecurePackageResourceGuard) resourceSettings.getPackageResourceGuard(); guard.addPattern("+*.woff2"); List<IStringResourceLoader> resourceLoaders = resourceSettings.getStringResourceLoaders(); resourceLoaders.add(0, new Utf8BundleStringResourceLoader("localization/Midpoint")); resourceLoaders.add( 1, new Utf8BundleStringResourceLoader( SchemaConstants.SCHEMA_LOCALIZATION_PROPERTIES_RESOURCE_BASE_PATH)); resourceSettings.setThrowExceptionOnMissingResource(false); getMarkupSettings().setStripWicketTags(true); // getMarkupSettings().setDefaultBeforeDisabledLink(""); // getMarkupSettings().setDefaultAfterDisabledLink(""); if (RuntimeConfigurationType.DEVELOPMENT.equals(getConfigurationType())) { getDebugSettings().setAjaxDebugModeEnabled(true); getDebugSettings().setDevelopmentUtilitiesEnabled(true); } // pretty url for resources (e.g. images) mountFiles(ImgResources.BASE_PATH, ImgResources.class); // exception handling an error pages ApplicationSettings appSettings = getApplicationSettings(); appSettings.setAccessDeniedPage(PageError401.class); appSettings.setInternalErrorPage(PageError.class); appSettings.setPageExpiredErrorPage(PageError.class); mount(new MountedMapper("/error", PageError.class, MidPointPageParametersEncoder.ENCODER)); mount( new MountedMapper("/error/401", PageError401.class, MidPointPageParametersEncoder.ENCODER)); mount( new MountedMapper("/error/403", PageError403.class, MidPointPageParametersEncoder.ENCODER)); mount( new MountedMapper("/error/404", PageError404.class, MidPointPageParametersEncoder.ENCODER)); mount( new MountedMapper("/error/410", PageError410.class, MidPointPageParametersEncoder.ENCODER)); getRequestCycleListeners().add(new LoggingRequestCycleListener(this)); // descriptor loader, used for customization new DescriptorLoader().loadData(this); }
@SuppressWarnings("serial") public GeoServerBasePage() { // lookup for a pluggable favicon PackageResourceReference faviconReference = null; List<HeaderContribution> cssContribs = getGeoServerApplication().getBeansOfType(HeaderContribution.class); for (HeaderContribution csscontrib : cssContribs) { try { if (csscontrib.appliesTo(this)) { PackageResourceReference ref = csscontrib.getFavicon(); if (ref != null) { faviconReference = ref; } } } catch (Throwable t) { LOGGER.log(Level.WARNING, "Problem adding header contribution", t); } } // favicon if (faviconReference == null) { faviconReference = new PackageResourceReference(GeoServerBasePage.class, "favicon.ico"); } String faviconUrl = RequestCycle.get().urlFor(faviconReference, null).toString(); add(new ExternalLink("faviconLink", faviconUrl, null)); // page title add( new Label( "pageTitle", new LoadableDetachableModel<String>() { @Override protected String load() { return getPageTitle(); } })); // login form WebMarkupContainer loginForm = new WebMarkupContainer("loginform") { protected void onComponentTag(org.apache.wicket.markup.ComponentTag tag) { String path = getRequest().getUrl().getPath(); StringBuilder loginPath = new StringBuilder(); if (path.isEmpty()) { // home page loginPath.append("../j_spring_security_check"); } else { // boomarkable page of sorts String[] pathElements = path.split("/"); for (String pathElement : pathElements) { if (!pathElement.isEmpty()) { loginPath.append("../"); } } loginPath.append("j_spring_security_check"); } tag.put("action", loginPath); }; }; add(loginForm); final Authentication user = GeoServerSession.get().getAuthentication(); final boolean anonymous = user == null || user instanceof AnonymousAuthenticationToken; loginForm.setVisible(anonymous); WebMarkupContainer logoutForm = new WebMarkupContainer("logoutform"); logoutForm.setVisible(!anonymous); add(logoutForm); logoutForm.add(new Label("username", anonymous ? "Nobody" : user.getName())); // home page link add( new BookmarkablePageLink("home", GeoServerHomePage.class) .add(new Label("label", new StringResourceModel("home", (Component) null, null)))); // dev buttons DeveloperToolbar devToolbar = new DeveloperToolbar("devButtons"); add(devToolbar); devToolbar.setVisible( RuntimeConfigurationType.DEVELOPMENT.equals(getApplication().getConfigurationType())); final Map<Category, List<MenuPageInfo>> links = splitByCategory(filterByAuth(getGeoServerApplication().getBeansOfType(MenuPageInfo.class))); List<MenuPageInfo> standalone = links.containsKey(null) ? links.get(null) : new ArrayList<MenuPageInfo>(); links.remove(null); List<Category> categories = new ArrayList<>(links.keySet()); Collections.sort(categories); add( new ListView<Category>("category", categories) { public void populateItem(ListItem<Category> item) { Category category = item.getModelObject(); item.add( new Label( "category.header", new StringResourceModel(category.getNameKey(), (Component) null, null))); item.add( new ListView<MenuPageInfo>("category.links", links.get(category)) { public void populateItem(ListItem<MenuPageInfo> item) { MenuPageInfo info = item.getModelObject(); BookmarkablePageLink<Page> link = new BookmarkablePageLink<>("link", info.getComponentClass()); link.add( AttributeModifier.replace( "title", new StringResourceModel( info.getDescriptionKey(), (Component) null, null))); link.add( new Label( "link.label", new StringResourceModel(info.getTitleKey(), (Component) null, null))); Image image; if (info.getIcon() != null) { image = new Image( "link.icon", new PackageResourceReference( info.getComponentClass(), info.getIcon())); } else { image = new Image( "link.icon", new PackageResourceReference( GeoServerBasePage.class, "img/icons/silk/wrench.png")); } image.add( AttributeModifier.replace( "alt", new ParamResourceModel(info.getTitleKey(), null))); link.add(image); item.add(link); } }); } }); add( new ListView<MenuPageInfo>("standalone", standalone) { public void populateItem(ListItem<MenuPageInfo> item) { MenuPageInfo info = item.getModelObject(); BookmarkablePageLink<Page> link = new BookmarkablePageLink<>("link", info.getComponentClass()); link.add( AttributeModifier.replace( "title", new StringResourceModel(info.getDescriptionKey(), (Component) null, null))); link.add( new Label( "link.label", new StringResourceModel(info.getTitleKey(), (Component) null, null))); item.add(link); } }); add(feedbackPanel = new FeedbackPanel("feedback")); feedbackPanel.setOutputMarkupId(true); // ajax feedback image add( new Image( "ajaxFeedbackImage", new PackageResourceReference(GeoServerBasePage.class, "img/ajax-loader.gif"))); add(new WebMarkupContainer(HEADER_PANEL)); // allow the subclasses to initialize before getTitle/getDescription are called add( new Label( "gbpTitle", new LoadableDetachableModel<String>() { @Override protected String load() { return getTitle(); } })); add( new Label( "gbpDescription", new LoadableDetachableModel<String>() { @Override protected String load() { return getDescription(); } })); // node id handling WebMarkupContainer container = new WebMarkupContainer("nodeIdContainer"); add(container); String id = getNodeInfo().getId(); Label label = new Label("nodeId", id); container.add(label); NODE_INFO.customize(container); if (id == null) { container.setVisible(false); } }
@Override public void init() { super.init(); getMarkupSettings().setStripWicketTags(true); getResourceSettings().setPackageResourceGuard(new PackageResourceGuard()); // used for selenium testing // http://www.wijsmullerbros.nl/content/wicket-selenium if (RuntimeConfigurationType.DEVELOPMENT.equals(this.getConfigurationType())) { getDebugSettings().setOutputComponentPath(true); getDebugSettings().setOutputMarkupContainerClassName(true); } IComponentInstantiationListener spListener = new SpringComponentInjector(this, applicationContext, true); this.getComponentInstantiationListeners().add(spListener); mountPages(); // this is for the generated image in demo in ImageRefPage.java mountResource("/images/${name}", new ImageResourceReference()); // this cleans up the url http://localhost:9090/wicket-sandbox/imagesPage?0 // will go to the ImageRefPage mountPage("imagesPage", ImageRefPage.class); //////////////////// // mountBookmarkablePage(page.getSimpleName(), page); // Register the authorization strategy getSecuritySettings() .setAuthorizationStrategy( new IAuthorizationStrategy() { @Override public boolean isActionAuthorized( org.apache.wicket.Component component, Action action) { // authorize everything // logger.debug("authorizing for component " + component.getMarkupId() + " action " // + action.getName()); return true; } @Override public <T extends IRequestableComponent> boolean isInstantiationAuthorized( Class<T> componentClass) { // Check if the new Page requires authentication (implements the marker interface) // logger.debug("entering isInstantiationAuthorized " + // componentClass.getSimpleName()); if (AuthenticatedWebPage.class.isAssignableFrom(componentClass)) { // Is user signed in? if (((SandboxSession) Session.get()).isAuthenticated()) { // okay to proceed // logger.debug("authenticated hit " + componentClass.getSimpleName()); return true; } // logger.debug("about to throw noauth " + componentClass.getSimpleName()); // Intercept the request, but remember the target for later. // Invoke Component.continueToOriginalDestination() after successful logon to // continue with the target remembered. throw new RestartResponseAtInterceptPageException(SignIn.class); } // okay to proceed return true; } }); }