Search in sources :

Example 1 with ClassPathScanImplementationLookup

use of org.apache.syncope.client.console.init.ClassPathScanImplementationLookup in project syncope by apache.

the class SyncopeConsoleApplication method init.

@Override
protected void init() {
    super.init();
    // read console.properties
    Properties props = PropertyUtils.read(getClass(), CONSOLE_PROPERTIES, "console.directory").getLeft();
    site = props.getProperty("site");
    Args.notNull(site, "<site>");
    anonymousUser = props.getProperty("anonymousUser");
    Args.notNull(anonymousUser, "<anonymousUser>");
    anonymousKey = props.getProperty("anonymousKey");
    Args.notNull(anonymousKey, "<anonymousKey>");
    scheme = props.getProperty("scheme");
    Args.notNull(scheme, "<scheme>");
    host = props.getProperty("host");
    Args.notNull(host, "<host>");
    port = props.getProperty("port");
    Args.notNull(port, "<port>");
    rootPath = props.getProperty("rootPath");
    Args.notNull(rootPath, "<rootPath>");
    useGZIPCompression = props.getProperty("useGZIPCompression");
    Args.notNull(useGZIPCompression, "<useGZIPCompression>");
    maxUploadFileSizeMB = props.getProperty("maxUploadFileSizeMB") == null ? null : Integer.valueOf(props.getProperty("maxUploadFileSizeMB"));
    maxWaitTime = Integer.valueOf(props.getProperty("maxWaitTimeOnApplyChanges", "30"));
    String csrf = props.getProperty("csrf");
    // process page properties
    pageClasses = new HashMap<>();
    populatePageClasses(props);
    pageClasses = Collections.unmodifiableMap(pageClasses);
    // Application settings
    IBootstrapSettings settings = new BootstrapSettings();
    // set theme provider
    settings.setThemeProvider(new SingleThemeProvider(new AdminLTE()));
    // install application settings
    Bootstrap.install(this, settings);
    getResourceSettings().setUseMinifiedResources(true);
    getResourceSettings().setThrowExceptionOnMissingResource(true);
    getJavaScriptLibrarySettings().setJQueryReference(new DynamicJQueryResourceReference());
    getSecuritySettings().setAuthorizationStrategy(new MetaDataRoleAuthorizationStrategy(this));
    ClassPathScanImplementationLookup lookup = (ClassPathScanImplementationLookup) getServletContext().getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP);
    lookup.getPageClasses().forEach(cls -> MetaDataRoleAuthorizationStrategy.authorize(cls, SyncopeConsoleSession.AUTHENTICATED));
    getMarkupSettings().setStripWicketTags(true);
    getMarkupSettings().setCompressWhitespace(true);
    if (BooleanUtils.toBoolean(csrf)) {
        getRequestCycleListeners().add(new CsrfPreventionRequestCycleListener());
    }
    getRequestCycleListeners().add(new SyncopeConsoleRequestCycleListener());
    mountPage("/login", getSignInPageClass());
    flowableModelerDirectory = props.getProperty("flowableModelerDirectory");
    Args.notNull(flowableModelerDirectory, "<flowableModelerDirectory>");
    try {
        reconciliationReportKey = props.getProperty("reconciliationReportKey");
    } catch (NumberFormatException e) {
        LOG.error("While parsing reconciliationReportKey", e);
    }
    Args.notNull(reconciliationReportKey, "<reconciliationReportKey>");
    mountResource("/" + FLOWABLE_MODELER_CONTEXT, new ResourceReference(FLOWABLE_MODELER_CONTEXT) {

        private static final long serialVersionUID = -128426276529456602L;

        @Override
        public IResource getResource() {
            return new FilesystemResource(FLOWABLE_MODELER_CONTEXT, flowableModelerDirectory);
        }
    });
    mountResource("/workflowDefGET", new ResourceReference("workflowDefGET") {

        private static final long serialVersionUID = -128426276529456602L;

        @Override
        public IResource getResource() {
            return new WorkflowDefGETResource();
        }
    });
    mountResource("/workflowDefPUT", new ResourceReference("workflowDefPUT") {

        private static final long serialVersionUID = -128426276529456602L;

        @Override
        public IResource getResource() {
            return new WorkflowDefPUTResource();
        }
    });
    // enable component path
    if (getDebugSettings().isAjaxDebugModeEnabled()) {
        getDebugSettings().setComponentPathAttributeName("syncope-path");
    }
}
Also used : SingleThemeProvider(de.agilecoders.wicket.core.settings.SingleThemeProvider) Properties(java.util.Properties) MetaDataRoleAuthorizationStrategy(org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy) IBootstrapSettings(de.agilecoders.wicket.core.settings.IBootstrapSettings) BootstrapSettings(de.agilecoders.wicket.core.settings.BootstrapSettings) CsrfPreventionRequestCycleListener(org.apache.wicket.protocol.http.CsrfPreventionRequestCycleListener) IBootstrapSettings(de.agilecoders.wicket.core.settings.IBootstrapSettings) FilesystemResource(org.apache.syncope.client.console.resources.FilesystemResource) ClassPathScanImplementationLookup(org.apache.syncope.client.console.init.ClassPathScanImplementationLookup) WorkflowDefGETResource(org.apache.syncope.client.console.resources.WorkflowDefGETResource) AdminLTE(org.apache.syncope.client.console.themes.AdminLTE) DynamicJQueryResourceReference(org.apache.wicket.resource.DynamicJQueryResourceReference) ResourceReference(org.apache.wicket.request.resource.ResourceReference) WorkflowDefPUTResource(org.apache.syncope.client.console.resources.WorkflowDefPUTResource) DynamicJQueryResourceReference(org.apache.wicket.resource.DynamicJQueryResourceReference) IResource(org.apache.wicket.request.resource.IResource)

Example 2 with ClassPathScanImplementationLookup

use of org.apache.syncope.client.console.init.ClassPathScanImplementationLookup in project syncope by apache.

the class Dashboard method buildTabList.

private List<ITab> buildTabList() {
    final List<ITab> tabs = new ArrayList<>();
    tabs.add(new AbstractTab(new ResourceModel("overview")) {

        private static final long serialVersionUID = -6815067322125799251L;

        @Override
        public Panel getPanel(final String panelId) {
            return new DashboardOverviewPanel(panelId);
        }
    });
    tabs.add(new AbstractTab(new ResourceModel("accessTokens")) {

        private static final long serialVersionUID = -6815067322125799251L;

        @Override
        public Panel getPanel(final String panelId) {
            return new DashboardAccessTokensPanel(panelId, getPageReference());
        }
    });
    tabs.add(new AbstractTab(new ResourceModel("control")) {

        private static final long serialVersionUID = -6815067322125799251L;

        @Override
        public Panel getPanel(final String panelId) {
            return new DashboardControlPanel(panelId, getPageReference());
        }
    });
    ClassPathScanImplementationLookup classPathScanImplementationLookup = (ClassPathScanImplementationLookup) SyncopeConsoleApplication.get().getServletContext().getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP);
    final List<Class<? extends BaseExtWidget>> extWidgetClasses = classPathScanImplementationLookup.getExtWidgetClasses();
    if (!extWidgetClasses.isEmpty()) {
        tabs.add(new AbstractTab(new ResourceModel("extensions")) {

            private static final long serialVersionUID = -6815067322125799251L;

            @Override
            public Panel getPanel(final String panelId) {
                return new DashboardExtensionsPanel(panelId, extWidgetClasses, getPageReference());
            }
        });
    }
    return tabs;
}
Also used : DashboardAccessTokensPanel(org.apache.syncope.client.console.panels.DashboardAccessTokensPanel) ArrayList(java.util.ArrayList) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) DashboardExtensionsPanel(org.apache.syncope.client.console.panels.DashboardExtensionsPanel) DashboardExtensionsPanel(org.apache.syncope.client.console.panels.DashboardExtensionsPanel) AjaxBootstrapTabbedPanel(de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel) Panel(org.apache.wicket.markup.html.panel.Panel) DashboardOverviewPanel(org.apache.syncope.client.console.panels.DashboardOverviewPanel) DashboardAccessTokensPanel(org.apache.syncope.client.console.panels.DashboardAccessTokensPanel) DashboardControlPanel(org.apache.syncope.client.console.panels.DashboardControlPanel) DashboardOverviewPanel(org.apache.syncope.client.console.panels.DashboardOverviewPanel) ClassPathScanImplementationLookup(org.apache.syncope.client.console.init.ClassPathScanImplementationLookup) DashboardControlPanel(org.apache.syncope.client.console.panels.DashboardControlPanel) AbstractTab(org.apache.wicket.extensions.markup.html.tabs.AbstractTab) ResourceModel(org.apache.wicket.model.ResourceModel) BaseExtWidget(org.apache.syncope.client.console.widgets.BaseExtWidget)

Aggregations

ClassPathScanImplementationLookup (org.apache.syncope.client.console.init.ClassPathScanImplementationLookup)2 AjaxBootstrapTabbedPanel (de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel)1 BootstrapSettings (de.agilecoders.wicket.core.settings.BootstrapSettings)1 IBootstrapSettings (de.agilecoders.wicket.core.settings.IBootstrapSettings)1 SingleThemeProvider (de.agilecoders.wicket.core.settings.SingleThemeProvider)1 ArrayList (java.util.ArrayList)1 Properties (java.util.Properties)1 DashboardAccessTokensPanel (org.apache.syncope.client.console.panels.DashboardAccessTokensPanel)1 DashboardControlPanel (org.apache.syncope.client.console.panels.DashboardControlPanel)1 DashboardExtensionsPanel (org.apache.syncope.client.console.panels.DashboardExtensionsPanel)1 DashboardOverviewPanel (org.apache.syncope.client.console.panels.DashboardOverviewPanel)1 FilesystemResource (org.apache.syncope.client.console.resources.FilesystemResource)1 WorkflowDefGETResource (org.apache.syncope.client.console.resources.WorkflowDefGETResource)1 WorkflowDefPUTResource (org.apache.syncope.client.console.resources.WorkflowDefPUTResource)1 AdminLTE (org.apache.syncope.client.console.themes.AdminLTE)1 BaseExtWidget (org.apache.syncope.client.console.widgets.BaseExtWidget)1 MetaDataRoleAuthorizationStrategy (org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy)1 AbstractTab (org.apache.wicket.extensions.markup.html.tabs.AbstractTab)1 ITab (org.apache.wicket.extensions.markup.html.tabs.ITab)1 Panel (org.apache.wicket.markup.html.panel.Panel)1