You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2019/05/15 06:49:51 UTC
[syncope] 02/02: [SYNCOPE-1460] Console support for domain
management
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 07303b494ea41e2f85c7758c60fad5f8327eb200
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Wed May 15 08:49:33 2019 +0200
[SYNCOPE-1460] Console support for domain management
---
client/idrepo/common-ui/pom.xml | 12 +-
.../syncope/client/ui/commons/BaseApplication.java | 26 ---
.../syncope/client/ui/commons/BaseLogin.java | 27 ++-
.../syncope/client/ui/commons/DomainDropDown.java | 8 +-
.../markup/html/form/AbstractFieldPanel.html | 0
.../markup/html/form/AjaxCheckBoxPanel.html | 0
.../markup/html/form/AjaxDropDownChoicePanel.html | 0
.../commons/markup/html/form/AjaxPalettePanel.html | 0
.../markup/html/form/AjaxPasswordFieldPanel.html | 0
.../markup/html/form/AjaxSpinnerFieldPanel.html | 0
.../markup/html/form/AjaxTextFieldPanel.html | 0
.../markup/html/form/EncryptedFieldPanel.html | 0
.../html/form/EncryptedFieldPanel.properties | 0
.../html/form/EncryptedFieldPanel_it.properties | 0
.../html/form/EncryptedFieldPanel_ja.properties | 0
.../html/form/EncryptedFieldPanel_pt_BR.properties | 0
.../html/form/EncryptedFieldPanel_ru.properties | 0
.../commons/markup/html/form/NonI18nPalette.html | 0
.../html/form/preview/AbstractBinaryPreviewer.html | 0
.../markup/html/form/preview/DefaultPreviewer.html | 0
.../client/ui/commons/panels/LabelPanel.html | 0
.../ui/commons/panels/NotificationPanel.html | 0
.../markup/html/bootstrap/tabs/Accordion.html | 0
.../client/ui/commons/wizards/AjaxWizard.html | 0
.../ui/commons/wizards/AjaxWizard.properties | 0
.../ui/commons/wizards/AjaxWizardMgtButtonBar.html | 0
.../ui/commons/wizards/AjaxWizard_it.properties | 0
.../ui/commons/wizards/AjaxWizard_ja.properties | 0
.../ui/commons/wizards/AjaxWizard_pt_BR.properties | 0
.../ui/commons/wizards/AjaxWizard_ru.properties | 0
.../ui/commons/wizards/any/PasswordPanel.html | 0
client/idrepo/console/pom.xml | 44 ----
.../client/console/SyncopeWebApplication.java | 25 +--
.../client/console/commons/IdRepoConstants.java | 2 +
.../syncope/client/console/pages/BasePage.java | 78 +++++--
.../pages/{NetworkServices.java => Domains.java} | 34 +--
.../apache/syncope/client/console/pages/Login.java | 6 -
.../client/console/pages/NetworkServices.java | 2 +-
.../client/console/panels/AbstractModalPanel.java | 6 +-
.../panels/DomainAdminCredentialsPanel.java | 85 ++++++++
.../console/panels/DomainDirectoryPanel.java | 208 ++++++++++++++++++
.../console/panels/DomainPoolModalPanel.java | 78 +++++++
.../client/console/panels/DomainWizardBuilder.java | 233 +++++++++++++++++++++
.../syncope/client/console/panels/TogglePanel.java | 3 +
.../reports/ReportTemplateDirectoryPanel.java | 6 +-
.../console/reports/ReportWizardBuilder.java | 1 -
.../markup/html/form/ActionLinksTogglePanel.java | 5 +-
.../console/SyncopeWebApplication.properties | 4 +-
.../console/SyncopeWebApplication_it.properties | 4 +-
.../console/SyncopeWebApplication_ja.properties | 4 +-
.../console/SyncopeWebApplication_pt_BR.properties | 4 +-
.../console/SyncopeWebApplication_ru.properties | 4 +-
.../syncope/client/console/pages/BasePage.html | 10 +-
.../pages/Domains.html} | 24 ++-
.../client/console/pages/NetworkServices.html | 4 +-
.../syncope/client/console/pages/Parameters.html | 2 +-
.../panels/DomainAdminCredentialsPanel.html} | 7 +-
.../panels/DomainDirectoryPanel.properties} | 25 ++-
.../panels/DomainDirectoryPanel_it.properties | 40 ++++
.../panels/DomainDirectoryPanel_ja.properties} | 25 ++-
.../panels/DomainDirectoryPanel_pt_BR.properties} | 25 ++-
.../panels/DomainDirectoryPanel_ru.properties} | 25 ++-
.../console/panels/DomainPoolModalPanel.html} | 9 +-
.../DomainWizardBuilder$AdminCredentials.html} | 5 +-
.../panels/DomainWizardBuilder$Content.html} | 3 +-
.../DomainWizardBuilder$KeymasterConfParams.html} | 3 +-
.../panels/DomainWizardBuilder$Storage.html} | 23 +-
.../markup/html/form/AbstractFieldPanel.html | 34 ---
.../markup/html/form/AjaxDropDownChoicePanel.html | 29 ---
.../commons/markup/html/form/AjaxPalettePanel.html | 38 ----
.../markup/html/form/AjaxSpinnerFieldPanel.html | 39 ----
.../markup/html/form/EncryptedFieldPanel.html | 66 ------
.../html/form/EncryptedFieldPanel_ru.properties | 19 --
.../commons/markup/html/form/NonI18nPalette.html | 57 -----
.../ui/commons/panels/NotificationPanel.html | 60 ------
.../markup/html/bootstrap/tabs/Accordion.html | 32 ---
.../ui/commons/wizards/AjaxWizard.properties | 23 --
.../ui/commons/wizards/AjaxWizard_it.properties | 23 --
.../ui/commons/wizards/AjaxWizard_ja.properties | 23 --
.../ui/commons/wizards/AjaxWizard_pt_BR.properties | 23 --
.../ui/commons/wizards/AjaxWizard_ru.properties | 30 ---
client/idrepo/enduser/pom.xml | 66 ------
.../client/enduser/SyncopeWebApplication.java | 21 +-
.../apache/syncope/client/enduser/pages/Login.java | 6 -
.../enduser/pages/SelfConfirmPasswordReset.java | 26 ++-
.../client/enduser/panels/SelfPwdResetPanel.java | 26 ++-
.../markup/html/form/AjaxCheckBoxPanel.html | 34 ---
.../markup/html/form/AjaxPasswordFieldPanel.html | 36 ----
.../client/ui/commons/wizards/AjaxWizard.html | 46 ----
.../ui/commons/wizards/AjaxWizardMgtButtonBar.html | 38 ----
.../common/lib/types/IdRepoEntitlement.java | 2 +-
.../common/keymaster/client/api/DomainOps.java | 2 +-
.../common/keymaster/client/api/model/Domain.java | 40 ++--
.../client/zookeper/ZookeeperDomainOps.java | 6 +-
.../client/zookeper/ZookeeperDomainOpsITCase.java | 16 +-
.../apache/syncope/core/logic/SyncopeLogic.java | 2 +-
.../core/persistence/jpa/DomainConfFactory.java | 4 +-
.../core/persistence/jpa/StartupDomainLoader.java | 4 +-
.../org/apache/syncope/core/logic/DomainLogic.java | 11 +-
.../self/keymaster/api/service/DomainService.java | 4 +-
.../keymaster/cxf/service/DomainServiceImpl.java | 4 +-
.../syncope/fit/console/ParametersITCase.java | 2 +-
.../apache/syncope/fit/core/KeymasterITCase.java | 15 +-
103 files changed, 1050 insertions(+), 996 deletions(-)
diff --git a/client/idrepo/common-ui/pom.xml b/client/idrepo/common-ui/pom.xml
index ce6baac..1dcbb01 100644
--- a/client/idrepo/common-ui/pom.xml
+++ b/client/idrepo/common-ui/pom.xml
@@ -48,6 +48,10 @@ under the License.
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
+ <artifactId>wicket-spring</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.wicket</groupId>
<artifactId>wicket-extensions</artifactId>
</dependency>
<dependency>
@@ -82,7 +86,13 @@ under the License.
<groupId>de.agilecoders.wicket</groupId>
<artifactId>wicket-bootstrap-extensions</artifactId>
</dependency>
-
+
+ <dependency>
+ <groupId>org.apache.syncope.common.keymaster</groupId>
+ <artifactId>syncope-common-keymaster-client-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.syncope.client.idrepo</groupId>
<artifactId>syncope-client-idrepo-lib</artifactId>
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseApplication.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseApplication.java
deleted file mode 100644
index 499113a..0000000
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseApplication.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.syncope.client.ui.commons;
-
-import java.util.List;
-
-public interface BaseApplication {
-
- List<String> getDomains();
-}
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java
index 197e9aa..8244cf0 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java
@@ -21,10 +21,15 @@ package org.apache.syncope.client.ui.commons;
import com.googlecode.wicket.kendo.ui.widget.notification.Notification;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.select.BootstrapSelect;
import java.security.AccessControlException;
+import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.ui.commons.panels.NotificationPanel;
+import org.apache.syncope.common.keymaster.client.api.DomainOps;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -40,8 +45,10 @@ import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.spring.injection.annot.SpringBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,6 +58,9 @@ public abstract class BaseLogin extends WebPage {
protected static final Logger LOG = LoggerFactory.getLogger(BaseLogin.class);
+ @SpringBean
+ private DomainOps domainOps;
+
protected final NotificationPanel notificationPanel;
protected final StatelessForm<Void> form;
@@ -63,6 +73,19 @@ public abstract class BaseLogin extends WebPage {
protected String notificationLevel;
+ private final LoadableDetachableModel<List<String>> domains = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 4659376149825914247L;
+
+ @Override
+ protected List<String> load() {
+ List<String> current = new ArrayList<>();
+ current.addAll(domainOps.list().stream().map(Domain::getKey).sorted().collect(Collectors.toList()));
+ current.add(0, SyncopeConstants.MASTER_DOMAIN);
+ return current;
+ }
+ };
+
public BaseLogin(final PageParameters parameters) {
super(parameters);
setStatelessHint(true);
@@ -116,7 +139,7 @@ public abstract class BaseLogin extends WebPage {
});
form.add(languageSelect);
- DomainDropDown domainSelect = new DomainDropDown("domain");
+ DomainDropDown domainSelect = new DomainDropDown("domain", domains);
domainSelect.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_BLUR) {
private static final long serialVersionUID = -1107858522700306810L;
@@ -175,8 +198,6 @@ public abstract class BaseLogin extends WebPage {
}
}
- protected abstract BaseApplication getBaseApplication();
-
protected abstract BaseSession getBaseSession();
protected abstract List<Panel> getSSOLoginFormPanels();
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java
index 38a6914..17a9de7 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java
@@ -19,8 +19,8 @@
package org.apache.syncope.client.ui.commons;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.select.BootstrapSelect;
+import java.util.List;
import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.wicket.Application;
import org.apache.wicket.Session;
import org.apache.wicket.model.IModel;
@@ -31,8 +31,8 @@ public class DomainDropDown extends BootstrapSelect<String> {
private static final long serialVersionUID = -7401167913360133325L;
- public DomainDropDown(final String id) {
- super(id, BaseApplication.class.cast(Application.get()).getDomains());
+ public DomainDropDown(final String id, final IModel<List<String>> domains) {
+ super(id, domains);
setModel(new IModel<String>() {
private static final long serialVersionUID = -1124206668056084806L;
@@ -55,7 +55,7 @@ public class DomainDropDown extends BootstrapSelect<String> {
// set default value to Master Domain
getModel().setObject(SyncopeConstants.MASTER_DOMAIN);
- if (BaseApplication.class.cast(Application.get()).getDomains().size() == 1) {
+ if (domains.getObject().size() == 1) {
setOutputMarkupPlaceholderTag(true);
}
}
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AbstractFieldPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AbstractFieldPanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AbstractFieldPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AbstractFieldPanel.html
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.html
similarity index 100%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.html
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPasswordFieldPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPasswordFieldPanel.html
similarity index 100%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPasswordFieldPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPasswordFieldPanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_it.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_it.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_it.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_it.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ja.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ja.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ja.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ja.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_pt_BR.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_pt_BR.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_pt_BR.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_pt_BR.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ru.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ru.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ru.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ru.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/NonI18nPalette.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/NonI18nPalette.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/NonI18nPalette.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/NonI18nPalette.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/AbstractBinaryPreviewer.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/AbstractBinaryPreviewer.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/AbstractBinaryPreviewer.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/AbstractBinaryPreviewer.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/DefaultPreviewer.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/DefaultPreviewer.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/DefaultPreviewer.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/DefaultPreviewer.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
similarity index 100%
copy from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
copy to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wicket/markup/html/bootstrap/tabs/Accordion.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wicket/markup/html/bootstrap/tabs/Accordion.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wicket/markup/html/bootstrap/tabs/Accordion.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wicket/markup/html/bootstrap/tabs/Accordion.html
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.html
similarity index 100%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.properties
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizardMgtButtonBar.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizardMgtButtonBar.html
similarity index 100%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizardMgtButtonBar.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizardMgtButtonBar.html
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_it.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_it.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_it.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_it.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ja.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ja.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ja.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ja.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_pt_BR.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_pt_BR.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_pt_BR.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_pt_BR.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ru.properties b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ru.properties
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ru.properties
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ru.properties
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/any/PasswordPanel.html b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/any/PasswordPanel.html
similarity index 100%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/any/PasswordPanel.html
rename to client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/wizards/any/PasswordPanel.html
diff --git a/client/idrepo/console/pom.xml b/client/idrepo/console/pom.xml
index 150d4f6..aefa2ac 100644
--- a/client/idrepo/console/pom.xml
+++ b/client/idrepo/console/pom.xml
@@ -57,46 +57,6 @@ under the License.
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-auth-roles</artifactId>
</dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-jquery-ui</artifactId>
- </dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-kendo-ui</artifactId>
- </dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-kendo-ui-culture</artifactId>
- </dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-kendo-ui-theme-bootstrap</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.wicket</groupId>
- <artifactId>wicket-native-websocket-javax</artifactId>
- </dependency>
- <dependency>
- <groupId>de.agilecoders.wicket</groupId>
- <artifactId>wicket-bootstrap-core</artifactId>
- </dependency>
- <dependency>
- <groupId>de.agilecoders.wicket</groupId>
- <artifactId>wicket-bootstrap-extensions</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.syncope.common.keymaster</groupId>
- <artifactId>syncope-common-keymaster-client-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.syncope.client.idrepo</groupId>
- <artifactId>syncope-client-idrepo-lib</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.syncope.client.idrepo</groupId>
@@ -148,10 +108,6 @@ under the License.
</dependency>
<dependency>
<groupId>org.webjars</groupId>
- <artifactId>jquery-ui</artifactId>
- </dependency>
- <dependency>
- <groupId>org.webjars</groupId>
<artifactId>jQuery-slimScroll</artifactId>
</dependency>
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java
index dbf4854..368b0a6 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java
@@ -31,7 +31,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
-import java.util.stream.Collectors;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.StringUtils;
@@ -58,7 +57,6 @@ import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.IResource;
import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.resource.JQueryResourceReference;
import org.apache.wicket.util.lang.Args;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -68,23 +66,20 @@ import org.apache.syncope.client.console.commons.PolicyTabProvider;
import org.apache.syncope.client.console.commons.StatusProvider;
import org.apache.syncope.client.console.commons.VirSchemaDetailsPanelProvider;
import org.apache.syncope.client.console.pages.MustChangePassword;
-import org.apache.syncope.client.ui.commons.BaseApplication;
import org.apache.syncope.client.ui.commons.SyncopeUIRequestCycleListener;
import org.apache.syncope.client.ui.commons.Constants;
-import org.apache.syncope.common.keymaster.client.api.DomainOps;
import org.apache.syncope.common.keymaster.client.api.model.NetworkService;
import org.apache.syncope.common.keymaster.client.api.ServiceOps;
-import org.apache.syncope.common.keymaster.client.api.model.Domain;
-import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.wicket.request.component.IRequestablePage;
import org.apache.wicket.request.cycle.IRequestCycleListener;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.resource.JQueryResourceReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
-public class SyncopeWebApplication extends WicketBootSecuredWebApplication implements BaseApplication {
+public class SyncopeWebApplication extends WicketBootSecuredWebApplication {
private static final Logger LOG = LoggerFactory.getLogger(SyncopeWebApplication.class);
@@ -105,9 +100,6 @@ public class SyncopeWebApplication extends WicketBootSecuredWebApplication imple
@Autowired
private ServiceOps serviceOps;
- @Autowired
- private DomainOps domainOps;
-
@Value("${service.discovery.address}")
private String address;
@@ -129,8 +121,6 @@ public class SyncopeWebApplication extends WicketBootSecuredWebApplication imple
private Integer queueCapacity;
- private List<String> domains;
-
private ExternalResourceProvider resourceProvider;
private AnyWizardBuilderAdditionalSteps anyWizardBuilderAdditionalSteps;
@@ -365,17 +355,6 @@ public class SyncopeWebApplication extends WicketBootSecuredWebApplication imple
setUseCompression(useGZIPCompression);
}
- @Override
- public List<String> getDomains() {
- synchronized (LOG) {
- if (domains == null) {
- domains = domainOps.list().stream().map(Domain::getKey).sorted().collect(Collectors.toList());
- domains.add(0, SyncopeConstants.MASTER_DOMAIN);
- }
- }
- return domains;
- }
-
public ExternalResourceProvider getResourceProvider() {
return resourceProvider;
}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoConstants.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoConstants.java
index fd2819d..52c9932 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoConstants.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoConstants.java
@@ -72,6 +72,8 @@ public final class IdRepoConstants {
public static final String PREF_NETWORK_SERVICE_PAGINATOR_ROWS = "network.service.paginator.rows";
+ public static final String PREF_DOMAIN_PAGINATOR_ROWS = "domain.paginator.rows";
+
public static final String PREF_MAIL_TEMPLATE_PAGINATOR_ROWS = "mail.template.paginator.rows";
public static final String PREF_PROPAGATION_TASKS_PAGINATOR_ROWS = "proagationtasks.paginator.rows";
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java
index a2379a3..3e55ccf 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java
@@ -34,6 +34,7 @@ import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.Bas
import org.apache.syncope.client.console.widgets.ExtAlertWidget;
import org.apache.syncope.client.ui.commons.Constants;
import org.apache.syncope.client.ui.commons.pages.BaseWebPage;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.info.PlatformInfo;
import org.apache.syncope.common.lib.info.SystemInfo;
import org.apache.syncope.common.lib.types.IdRepoEntitlement;
@@ -135,8 +136,7 @@ public class BasePage extends BaseWebPage {
}
}
};
- MetaDataRoleAuthorizationStrategy.authorize(
- dbExportLink, WebPage.RENDER, IdRepoEntitlement.INTERNAL_STORAGE_EXPORT);
+ MetaDataRoleAuthorizationStrategy.authorize(dbExportLink, WebPage.RENDER, IdRepoEntitlement.KEYMASTER);
body.add(dbExportLink);
// menu
@@ -199,6 +199,31 @@ public class BasePage extends BaseWebPage {
idmPages.setOutputMarkupId(true);
body.add(idmPages);
+ WebMarkupContainer keymasterLIContainer = new WebMarkupContainer(getLIContainerId("keymaster"));
+ body.add(keymasterLIContainer);
+ WebMarkupContainer keymasterULContainer = new WebMarkupContainer(getULContainerId("keymaster"));
+ keymasterLIContainer.add(keymasterULContainer);
+
+ if (SyncopeConstants.MASTER_DOMAIN.equals(SyncopeConsoleSession.get().getDomain())) {
+ liContainer = new WebMarkupContainer(getLIContainerId("domains"));
+ keymasterULContainer.add(liContainer);
+ link = BookmarkablePageLinkBuilder.build("domains", Domains.class);
+ MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, IdRepoEntitlement.KEYMASTER);
+ liContainer.add(link);
+
+ liContainer = new WebMarkupContainer(getLIContainerId("networkservices"));
+ keymasterULContainer.add(liContainer);
+ link = BookmarkablePageLinkBuilder.build("networkservices", NetworkServices.class);
+ MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, IdRepoEntitlement.KEYMASTER);
+ liContainer.add(link);
+ }
+
+ liContainer = new WebMarkupContainer(getLIContainerId("parameters"));
+ keymasterULContainer.add(liContainer);
+ link = BookmarkablePageLinkBuilder.build("parameters", Parameters.class);
+ MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, IdRepoEntitlement.KEYMASTER);
+ liContainer.add(link);
+
WebMarkupContainer confLIContainer = new WebMarkupContainer(getLIContainerId("configuration"));
body.add(confLIContainer);
WebMarkupContainer confULContainer = new WebMarkupContainer(getULContainerId("configuration"));
@@ -222,12 +247,6 @@ public class BasePage extends BaseWebPage {
MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, IdRepoEntitlement.LOG_LIST);
liContainer.add(link);
- liContainer = new WebMarkupContainer(getLIContainerId("networkServices"));
- confULContainer.add(liContainer);
- link = BookmarkablePageLinkBuilder.build("networkServices", NetworkServices.class);
- MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, IdRepoEntitlement.INTERNAL_STORAGE_EXPORT);
- liContainer.add(link);
-
liContainer = new WebMarkupContainer(getLIContainerId("types"));
confULContainer.add(liContainer);
link = BookmarkablePageLinkBuilder.build("types", Types.class);
@@ -255,12 +274,6 @@ public class BasePage extends BaseWebPage {
MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, IdRepoEntitlement.NOTIFICATION_LIST);
liContainer.add(link);
- liContainer = new WebMarkupContainer(getLIContainerId("parameters"));
- confULContainer.add(liContainer);
- link = BookmarkablePageLinkBuilder.build("parameters", Parameters.class);
- MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, IdRepoEntitlement.INTERNAL_STORAGE_EXPORT);
- liContainer.add(link);
-
body.add(new AjaxLink<Void>("collapse") {
private static final long serialVersionUID = -7978723352517770644L;
@@ -273,6 +286,7 @@ public class BasePage extends BaseWebPage {
: !(Boolean) SyncopeConsoleSession.get().getAttribute(Constants.MENU_COLLAPSE));
}
});
+
body.add(new Label("domain", SyncopeConsoleSession.get().getDomain()));
@SuppressWarnings("unchecked")
@@ -304,11 +318,15 @@ public class BasePage extends BaseWebPage {
// set 'active' menu item for everything but extensions
// 1. check if current class is set to top-level menu
Component containingLI = body.get(getLIContainerId(getClass().getSimpleName().toLowerCase()));
- // 2. if not, check if it is under 'Configuration'
+ // 2. if not, check if it is under 'Keymaster'
+ if (containingLI == null) {
+ containingLI = keymasterULContainer.get(getLIContainerId(getClass().getSimpleName().toLowerCase()));
+ }
+ // 3. if not, check if it is under 'Configuration'
if (containingLI == null) {
containingLI = confULContainer.get(getLIContainerId(getClass().getSimpleName().toLowerCase()));
}
- // 3. when found, set CSS coordinates for menu
+ // 4. when found, set CSS coordinates for menu
if (containingLI != null) {
containingLI.add(new Behavior() {
@@ -320,7 +338,29 @@ public class BasePage extends BaseWebPage {
}
});
- if (confULContainer.getId().equals(containingLI.getParent().getId())) {
+ if (keymasterULContainer.getId().equals(containingLI.getParent().getId())) {
+ keymasterULContainer.add(new Behavior() {
+
+ private static final long serialVersionUID = -5775607340182293596L;
+
+ @Override
+ public void onComponentTag(final Component component, final ComponentTag tag) {
+ tag.put("class", "treeview-menu menu-open");
+ tag.put("style", "display: block;");
+ }
+
+ });
+
+ keymasterLIContainer.add(new Behavior() {
+
+ private static final long serialVersionUID = -5775607340182293596L;
+
+ @Override
+ public void onComponentTag(final Component component, final ComponentTag tag) {
+ tag.put("class", "treeview active");
+ }
+ });
+ } else if (confULContainer.getId().equals(containingLI.getParent().getId())) {
confULContainer.add(new Behavior() {
private static final long serialVersionUID = 3109256773218160485L;
@@ -376,8 +416,8 @@ public class BasePage extends BaseWebPage {
extensionsLI.setVisible(!extPageClasses.isEmpty());
body.add(extensionsLI);
- ListView<Class<? extends BaseExtPage>> extPages = new ListView<Class<? extends BaseExtPage>>(
- "extPages", extPageClasses) {
+ ListView<Class<? extends BaseExtPage>> extPages =
+ new ListView<Class<? extends BaseExtPage>>("extPages", extPageClasses) {
private static final long serialVersionUID = 4949588177564901031L;
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/NetworkServices.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Domains.java
similarity index 50%
copy from client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/NetworkServices.java
copy to client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Domains.java
index d0cc73d..a337a92 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/NetworkServices.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Domains.java
@@ -18,46 +18,24 @@
*/
package org.apache.syncope.client.console.pages;
-import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
import org.apache.syncope.client.console.BookmarkablePageLinkBuilder;
-import org.apache.syncope.client.console.panels.NetworkServiceDirectoryPanel;
-import org.apache.syncope.common.keymaster.client.api.model.NetworkService;
-import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
-import org.apache.wicket.extensions.markup.html.tabs.ITab;
+import org.apache.syncope.client.console.panels.DomainDirectoryPanel;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-public class NetworkServices extends BasePage {
+public class Domains extends BasePage {
- private static final long serialVersionUID = -4562707092152823781L;
+ private static final long serialVersionUID = -4144386092487209655L;
- public NetworkServices(final PageParameters parameters) {
+ public Domains(final PageParameters parameters) {
super(parameters);
body.add(BookmarkablePageLinkBuilder.build("dashboard", "dashboardBr", Dashboard.class));
WebMarkupContainer content = new WebMarkupContainer("content");
content.setOutputMarkupId(true);
- content.setMarkupId("networkServices");
- content.add(new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList()));
+ content.setMarkupId("domains");
+ content.add(new DomainDirectoryPanel("domainPanel", getPageReference()));
body.add(content);
}
-
- private List<ITab> buildTabList() {
- return Stream.of(NetworkService.Type.values()).
- sorted().
- map(type -> new AbstractTab(Model.of(type.name())) {
-
- private static final long serialVersionUID = -5861786415855103549L;
-
- @Override
- public WebMarkupContainer getPanel(final String panelId) {
- return new NetworkServiceDirectoryPanel(panelId, type, getPageReference());
- }
- }).collect(Collectors.toList());
- }
}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
index bba025d..b78c793 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
@@ -25,7 +25,6 @@ import java.util.Locale;
import org.apache.syncope.client.console.SyncopeWebApplication;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
-import org.apache.syncope.client.ui.commons.BaseApplication;
import org.apache.syncope.client.ui.commons.BaseLogin;
import org.apache.syncope.client.ui.commons.BaseSession;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -47,11 +46,6 @@ public class Login extends BaseLogin {
}
@Override
- protected BaseApplication getBaseApplication() {
- return SyncopeWebApplication.get();
- }
-
- @Override
protected BaseSession getBaseSession() {
return SyncopeConsoleSession.get();
}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/NetworkServices.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/NetworkServices.java
index d0cc73d..15422d8 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/NetworkServices.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/NetworkServices.java
@@ -42,7 +42,7 @@ public class NetworkServices extends BasePage {
WebMarkupContainer content = new WebMarkupContainer("content");
content.setOutputMarkupId(true);
- content.setMarkupId("networkServices");
+ content.setMarkupId("networkservices");
content.add(new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList()));
body.add(content);
}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
index 586cc54..2d7dee8 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
@@ -55,7 +55,11 @@ public class AbstractModalPanel<T extends Serializable> extends Panel
protected final HeaderItem meta = new MetaHeaderItem("X-UA-Compatible", "IE=edge");
public AbstractModalPanel(final BaseModal<T> modal, final PageReference pageRef) {
- super(BaseModal.getContentId());
+ this(BaseModal.getContentId(), modal, pageRef);
+ }
+
+ public AbstractModalPanel(final String id, final BaseModal<T> modal, final PageReference pageRef) {
+ super(id);
this.pageRef = pageRef;
this.modal = modal;
}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainAdminCredentialsPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainAdminCredentialsPanel.java
new file mode 100644
index 0000000..324eae7
--- /dev/null
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainAdminCredentialsPanel.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.syncope.client.console.panels;
+
+import java.util.Arrays;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.client.ui.commons.Constants;
+import org.apache.syncope.client.ui.commons.markup.html.form.AjaxDropDownChoicePanel;
+import org.apache.syncope.client.ui.commons.markup.html.form.EncryptedFieldPanel;
+import org.apache.syncope.common.keymaster.client.api.DomainOps;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
+import org.apache.syncope.common.lib.types.CipherAlgorithm;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+public class DomainAdminCredentialsPanel extends AbstractModalPanel<Domain> {
+
+ private static final long serialVersionUID = 2893133457496751451L;
+
+ @SpringBean
+ private DomainOps domainOps;
+
+ private final Domain domain;
+
+ public DomainAdminCredentialsPanel(
+ final Domain domain, final BaseModal<Domain> modal, final PageReference pageRef) {
+
+ super(modal, pageRef);
+ this.domain = domain;
+
+ AjaxDropDownChoicePanel<CipherAlgorithm> adminCipherAlgorithm = new AjaxDropDownChoicePanel<>(
+ "adminCipherAlgorithm", "adminCipherAlgorithm",
+ new PropertyModel<>(domain, "adminCipherAlgorithm"), false);
+ adminCipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));
+ adminCipherAlgorithm.addRequiredLabel();
+ adminCipherAlgorithm.setNullValid(false);
+ add(adminCipherAlgorithm);
+
+ EncryptedFieldPanel adminPassword = new EncryptedFieldPanel(
+ "adminPassword", "adminPassword", new PropertyModel<>(domain, "adminPassword"), false);
+ adminPassword.setRequired(true);
+ add(adminPassword);
+ }
+
+ @Override
+ public Domain getItem() {
+ return domain;
+ }
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target) {
+ try {
+ domainOps.changeAdminPassword(domain.getKey(), domain.getAdminPassword(), domain.getAdminCipherAlgorithm());
+
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ this.modal.close(target);
+ } catch (Exception e) {
+ LOG.error("While updating domain", e);
+ SyncopeConsoleSession.get().error(
+ StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage());
+ }
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainDirectoryPanel.java
new file mode 100644
index 0000000..597449f
--- /dev/null
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainDirectoryPanel.java
@@ -0,0 +1,208 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.syncope.client.console.panels;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.commons.DirectoryDataProvider;
+import org.apache.syncope.client.console.commons.IdRepoConstants;
+import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.panels.DomainDirectoryPanel.DomainProvider;
+import org.apache.syncope.client.console.rest.SyncopeRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
+import org.apache.syncope.client.ui.commons.Constants;
+import org.apache.syncope.common.keymaster.client.api.DomainOps;
+import org.apache.syncope.common.keymaster.client.api.KeymasterException;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
+import org.apache.syncope.common.lib.types.IdRepoEntitlement;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.model.StringResourceModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+public class DomainDirectoryPanel extends DirectoryPanel<Domain, Domain, DomainProvider, SyncopeRestClient> {
+
+ private static final long serialVersionUID = -1039907608594680220L;
+
+ @SpringBean
+ private DomainOps domainOps;
+
+ private final BaseModal<Domain> utilityModal = new BaseModal<>("outer");
+
+ public DomainDirectoryPanel(final String id, final PageReference pageRef) {
+ super(id, pageRef);
+ disableCheckBoxes();
+
+ modal.size(Modal.Size.Large);
+
+ modal.setWindowClosedCallback(target -> {
+ updateResultTable(target);
+ modal.show(false);
+ });
+
+ addOuterObject(utilityModal);
+ utilityModal.setWindowClosedCallback(target -> {
+ updateResultTable(target);
+ modal.show(false);
+ });
+ utilityModal.size(Modal.Size.Small);
+ utilityModal.addSubmitButton();
+
+ addNewItemPanelBuilder(new DomainWizardBuilder(domainOps, new Domain(), pageRef), true);
+
+ initResultTable();
+
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, RENDER, IdRepoEntitlement.KEYMASTER);
+ }
+
+ @Override
+ protected List<IColumn<Domain, String>> getColumns() {
+ List<IColumn<Domain, String>> columns = new ArrayList<>();
+ columns.add(new PropertyColumn<>(new StringResourceModel("key", this), "key", "key"));
+ columns.add(new PropertyColumn<>(
+ new StringResourceModel("jdbcURL", this), "jdbcURL", "jdbcURL"));
+ columns.add(new PropertyColumn<>(
+ new StringResourceModel("poolMaxActive", this), "poolMaxActive", "poolMaxActive"));
+ columns.add(new PropertyColumn<>(
+ new StringResourceModel("poolMinIdle", this), "poolMinIdle", "poolMinIdle"));
+ return columns;
+ }
+
+ @Override
+ protected ActionsPanel<Domain> getActions(final IModel<Domain> model) {
+ final ActionsPanel<Domain> panel = super.getActions(model);
+
+ panel.add(new ActionLink<Domain>() {
+
+ private static final long serialVersionUID = 7610801302168867641L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final Domain ignore) {
+ utilityModal.header(new ResourceModel("adjust.pool.size"));
+ utilityModal.setContent(new DomainPoolModalPanel(model.getObject(), utilityModal, pageRef));
+ utilityModal.show(true);
+ target.add(utilityModal);
+ }
+ }, ActionLink.ActionType.EDIT, IdRepoEntitlement.KEYMASTER);
+
+ panel.add(new ActionLink<Domain>() {
+
+ private static final long serialVersionUID = 7610801302168867641L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final Domain ignore) {
+ utilityModal.header(new ResourceModel("set.admin.credentials"));
+ utilityModal.setContent(new DomainAdminCredentialsPanel(model.getObject(), utilityModal, pageRef));
+ utilityModal.show(true);
+ target.add(utilityModal);
+ }
+ }, ActionLink.ActionType.PASSWORD_MANAGEMENT, IdRepoEntitlement.KEYMASTER);
+
+ panel.add(new ActionLink<Domain>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final Domain ignore) {
+ final Domain domain = model.getObject();
+ try {
+ domainOps.delete(domain.getKey());
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ target.add(container);
+ } catch (KeymasterException e) {
+ LOG.error("While deleting {}", domain.getKey(), e);
+ SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage())
+ ? e.getClass().getName() : e.getMessage());
+ }
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+ }, ActionLink.ActionType.DELETE, IdRepoEntitlement.KEYMASTER, true);
+
+ return panel;
+ }
+
+ @Override
+ protected DomainProvider dataProvider() {
+ return new DomainProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return IdRepoConstants.PREF_DOMAIN_PAGINATOR_ROWS;
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBatches() {
+ return Collections.<ActionLink.ActionType>emptyList();
+
+ }
+
+ protected final class DomainProvider extends DirectoryDataProvider<Domain> {
+
+ private static final long serialVersionUID = 8668261951640646188L;
+
+ private final SortableDataProviderComparator<Domain> comparator;
+
+ public DomainProvider(final int paginatorRows) {
+ super(paginatorRows);
+ setSort("key", SortOrder.ASCENDING);
+ comparator = new SortableDataProviderComparator<>(this);
+ }
+
+ @Override
+ public Iterator<? extends Domain> iterator(final long first, final long count) {
+ List<Domain> list = domainOps.list();
+ Collections.sort(list, comparator);
+ return list.subList((int) first, (int) first + (int) count).iterator();
+ }
+
+ @Override
+ public long size() {
+ return domainOps.list().size();
+ }
+
+ @Override
+ public IModel<Domain> model(final Domain object) {
+ return new IModel<Domain>() {
+
+ private static final long serialVersionUID = 8093553921710742624L;
+
+ @Override
+ public Domain getObject() {
+ return object;
+ }
+ };
+ }
+ }
+}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainPoolModalPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainPoolModalPanel.java
new file mode 100644
index 0000000..ab6d303
--- /dev/null
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainPoolModalPanel.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.syncope.client.console.panels;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.client.console.SyncopeConsoleSession;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.client.ui.commons.Constants;
+import org.apache.syncope.client.ui.commons.markup.html.form.AjaxSpinnerFieldPanel;
+import org.apache.syncope.common.keymaster.client.api.DomainOps;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+public class DomainPoolModalPanel extends AbstractModalPanel<Domain> {
+
+ private static final long serialVersionUID = -2676426626979352532L;
+
+ @SpringBean
+ private DomainOps domainOps;
+
+ private final Domain domain;
+
+ public DomainPoolModalPanel(final Domain domain, final BaseModal<Domain> modal, final PageReference pageRef) {
+ super(modal, pageRef);
+ this.domain = domain;
+
+ add(new AjaxSpinnerFieldPanel.Builder<Integer>().min(0).build(
+ "poolMaxActive",
+ "poolMaxActive",
+ Integer.class,
+ new PropertyModel<>(domain, "poolMaxActive")).setRequired(true));
+ add(new AjaxSpinnerFieldPanel.Builder<Integer>().min(0).build(
+ "poolMinIdle",
+ "poolMinIdle",
+ Integer.class,
+ new PropertyModel<>(domain, "poolMinIdle")).setRequired(true));
+ }
+
+ @Override
+ public Domain getItem() {
+ return domain;
+ }
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target) {
+ try {
+ domainOps.adjustPoolSize(domain.getKey(), domain.getPoolMaxActive(), domain.getPoolMinIdle());
+
+ SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+ this.modal.close(target);
+ } catch (Exception e) {
+ LOG.error("While updating domain", e);
+ SyncopeConsoleSession.get().error(
+ StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage());
+ }
+ ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+ }
+}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainWizardBuilder.java
new file mode 100644
index 0000000..84b8874
--- /dev/null
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainWizardBuilder.java
@@ -0,0 +1,233 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.syncope.client.console.panels;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.List;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.syncope.client.console.wicket.markup.html.form.JsonEditorPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.XMLEditorPanel;
+import org.apache.syncope.client.console.wizards.BaseAjaxWizardBuilder;
+import org.apache.syncope.client.ui.commons.Constants;
+import org.apache.syncope.client.ui.commons.markup.html.form.AjaxCheckBoxPanel;
+import org.apache.syncope.client.ui.commons.markup.html.form.AjaxDropDownChoicePanel;
+import org.apache.syncope.client.ui.commons.markup.html.form.AjaxSpinnerFieldPanel;
+import org.apache.syncope.client.ui.commons.markup.html.form.AjaxTextFieldPanel;
+import org.apache.syncope.client.ui.commons.markup.html.form.EncryptedFieldPanel;
+import org.apache.syncope.common.keymaster.client.api.DomainOps;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
+import org.apache.syncope.common.lib.types.CipherAlgorithm;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.extensions.wizard.WizardModel;
+import org.apache.wicket.extensions.wizard.WizardStep;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+
+public class DomainWizardBuilder extends BaseAjaxWizardBuilder<Domain> {
+
+ private static final long serialVersionUID = -6731030158762705250L;
+
+ private static final List<String> JDBC_DRIVERS = Arrays.asList(
+ "org.postgresql.Driver",
+ "com.mysql.cj.jdbc.Driver",
+ "org.mariadb.jdbc.Driver",
+ "com.microsoft.sqlserver.jdbc.SQLServerDriver",
+ "oracle.jdbc.OracleDriver",
+ "org.h2.Driver");
+
+ private static final List<String> DATABASE_PLATFORMS = Arrays.asList(
+ "org.apache.openjpa.jdbc.sql.PostgresDictionary",
+ "org.apache.openjpa.jdbc.sql.MySQLDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)",
+ "org.apache.openjpa.jdbc.sql.MariaDBDictionary(blobTypeName=LONGBLOB,dateFractionDigits=3)",
+ "org.apache.openjpa.jdbc.sql.SQLServerDictionary",
+ "org.apache.openjpa.jdbc.sql.OracleDictionary",
+ "org.apache.openjpa.jdbc.sql.H2Dictionary");
+
+ private final DomainOps domainOps;
+
+ public DomainWizardBuilder(final DomainOps domainOps, final Domain domain, final PageReference pageRef) {
+ super(domain, pageRef);
+ this.domainOps = domainOps;
+ }
+
+ @Override
+ protected Serializable onApplyInternal(final Domain domain) {
+ domainOps.create(domain);
+ return domain;
+ }
+
+ @Override
+ protected WizardModel buildModelSteps(final Domain domain, final WizardModel wizardModel) {
+ wizardModel.add(new Storage(domain));
+ wizardModel.add(new AdminCredentials(domain));
+ wizardModel.add(new Content(domain));
+ wizardModel.add(new KeymasterConfParams(domain));
+ return wizardModel;
+ }
+
+ public class Storage extends WizardStep {
+
+ private static final long serialVersionUID = 3671044119870133102L;
+
+ public Storage(final Domain domain) {
+ add(new AjaxTextFieldPanel(
+ "key",
+ "key",
+ new PropertyModel<>(domain, "key")).setRequired(true));
+
+ AjaxDropDownChoicePanel<String> jdbcDriver = new AjaxDropDownChoicePanel<>(
+ "jdbcDriver", "jdbcDriver", new PropertyModel<>(domain, "jdbcDriver"), false);
+ jdbcDriver.setChoices(JDBC_DRIVERS);
+ jdbcDriver.addRequiredLabel();
+ jdbcDriver.setNullValid(false);
+ add(jdbcDriver);
+
+ add(new AjaxTextFieldPanel(
+ "jdbcURL",
+ "jdbcURL",
+ new PropertyModel<>(domain, "jdbcURL")).setRequired(true));
+
+ add(new AjaxTextFieldPanel(
+ "dbSchema",
+ "dbSchema",
+ new PropertyModel<>(domain, "dbSchema")).setRequired(false));
+
+ add(new AjaxTextFieldPanel(
+ "dbUsername",
+ "dbUsername",
+ new PropertyModel<>(domain, "dbUsername")).setRequired(true));
+ add(new EncryptedFieldPanel(
+ "dbPassword", "dbPassword", new PropertyModel<>(domain, "dbPassword"), false));
+
+ AjaxDropDownChoicePanel<Domain.TransactionIsolation> transactionIsolation = new AjaxDropDownChoicePanel<>(
+ "transactionIsolation", "transactionIsolation",
+ new PropertyModel<>(domain, "transactionIsolation"), false);
+ transactionIsolation.setChoices(Arrays.asList(Domain.TransactionIsolation.values()));
+ transactionIsolation.addRequiredLabel();
+ transactionIsolation.setNullValid(false);
+ add(transactionIsolation);
+
+ add(new AjaxSpinnerFieldPanel.Builder<Integer>().min(0).build(
+ "poolMaxActive",
+ "poolMaxActive",
+ Integer.class,
+ new PropertyModel<>(domain, "poolMaxActive")).setRequired(true));
+ add(new AjaxSpinnerFieldPanel.Builder<Integer>().min(0).build(
+ "poolMinIdle",
+ "poolMinIdle",
+ Integer.class,
+ new PropertyModel<>(domain, "poolMinIdle")).setRequired(true));
+
+ add(new AjaxTextFieldPanel(
+ "auditSql",
+ "auditSql",
+ new PropertyModel<>(domain, "auditSql")).setRequired(true));
+
+ add(new AjaxTextFieldPanel(
+ "orm",
+ "orm",
+ new PropertyModel<>(domain, "orm")).setRequired(true));
+
+ AjaxDropDownChoicePanel<String> databasePlatform = new AjaxDropDownChoicePanel<>(
+ "databasePlatform", "databasePlatform", new PropertyModel<>(domain, "databasePlatform"), false);
+ databasePlatform.setChoices(DATABASE_PLATFORMS);
+ databasePlatform.addRequiredLabel();
+ databasePlatform.setNullValid(false);
+ add(databasePlatform);
+ }
+ }
+
+ public class AdminCredentials extends WizardStep {
+
+ private static final long serialVersionUID = -7472243942630790243L;
+
+ public AdminCredentials(final Domain domain) {
+ AjaxDropDownChoicePanel<CipherAlgorithm> adminCipherAlgorithm = new AjaxDropDownChoicePanel<>(
+ "adminCipherAlgorithm", "adminCipherAlgorithm",
+ new PropertyModel<>(domain, "adminCipherAlgorithm"), false);
+ adminCipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));
+ adminCipherAlgorithm.addRequiredLabel();
+ adminCipherAlgorithm.setNullValid(false);
+ add(adminCipherAlgorithm);
+
+ EncryptedFieldPanel adminPassword = new EncryptedFieldPanel(
+ "adminPassword", "adminPassword", new PropertyModel<>(domain, "adminPassword"), false);
+ adminPassword.setRequired(true);
+ add(adminPassword);
+ }
+ }
+
+ public class Content extends WizardStep {
+
+ private static final long serialVersionUID = -4214163958296844853L;
+
+ public Content(final Domain domain) {
+ XMLEditorPanel content = new XMLEditorPanel(
+ null, new PropertyModel<>(domain, "content"), false, pageRef);
+ content.setOutputMarkupPlaceholderTag(true);
+ content.setVisible(false);
+ add(content);
+
+ AjaxCheckBoxPanel defaultContent = new AjaxCheckBoxPanel(
+ "defaultContent", "defaultContent", Model.of(true), true);
+ defaultContent.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+
+ private static final long serialVersionUID = -1107858522700306810L;
+
+ @Override
+ protected void onUpdate(final AjaxRequestTarget target) {
+ content.setVisible(!BooleanUtils.toBoolean(defaultContent.getField().getConvertedInput()));
+ target.add(content);
+ }
+ });
+ add(defaultContent);
+ }
+ }
+
+ public class KeymasterConfParams extends WizardStep {
+
+ private static final long serialVersionUID = -8448363577805933925L;
+
+ public KeymasterConfParams(final Domain domain) {
+ JsonEditorPanel keymasterConfParams = new JsonEditorPanel(
+ null, new PropertyModel<>(domain, "keymasterConfParams"), false, pageRef);
+ keymasterConfParams.setOutputMarkupPlaceholderTag(true);
+ keymasterConfParams.setVisible(false);
+ add(keymasterConfParams);
+
+ AjaxCheckBoxPanel defaultKeymasterConfParams = new AjaxCheckBoxPanel(
+ "defaultKeymasterConfParams", "defaultKeymasterConfParams", Model.of(true), true);
+ defaultKeymasterConfParams.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+
+ private static final long serialVersionUID = -6139318907146065915L;
+
+ @Override
+ protected void onUpdate(final AjaxRequestTarget target) {
+ keymasterConfParams.setVisible(
+ !BooleanUtils.toBoolean(defaultKeymasterConfParams.getField().getConvertedInput()));
+ target.add(keymasterConfParams);
+ }
+ });
+ add(defaultKeymasterConfParams);
+ }
+ }
+}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java
index 85e31dd..17f7af5 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java
@@ -28,6 +28,7 @@ import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.client.ui.commons.wizards.any.AnyWrapper;
import org.apache.syncope.client.console.wizards.any.GroupWrapper;
import org.apache.syncope.client.ui.commons.wizards.any.UserWrapper;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
import org.apache.syncope.common.lib.to.AnyObjectTO;
import org.apache.syncope.common.lib.Attr;
import org.apache.syncope.common.lib.to.EntityTO;
@@ -190,6 +191,8 @@ public abstract class TogglePanel<T extends Serializable> extends WizardMgtPanel
? ((JobTO) modelObject).getRefDesc() : ((JobTO) modelObject).getRefKey();
} else if (modelObject instanceof ToggleableTarget) {
key = ((ToggleableTarget) modelObject).getKey();
+ } else if (modelObject instanceof Domain) {
+ key = ((Domain) modelObject).getKey();
} else {
key = new ResourceModel("actions", StringUtils.EMPTY).getObject();
}
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
index 3174c62..868d9e1 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
@@ -66,8 +66,8 @@ public class ReportTemplateDirectoryPanel
protected final BaseModal<String> utilityModal = new BaseModal<>("outer");
- public ReportTemplateDirectoryPanel(final String id, final PageReference pageReference) {
- super(id, pageReference, true);
+ public ReportTemplateDirectoryPanel(final String id, final PageReference pageRef) {
+ super(id, pageRef);
disableCheckBoxes();
modal.size(Modal.Size.Small);
@@ -99,7 +99,7 @@ public class ReportTemplateDirectoryPanel
public WizardModalPanel<ReportTemplateTO> build(
final String id, final int index, final AjaxWizard.Mode mode) {
- return new TemplateModal<>(modal, restClient, new ReportTemplateTO(), pageReference);
+ return new TemplateModal<>(modal, restClient, new ReportTemplateTO(), pageRef);
}
}, true);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java
index 3ceb127..3c86969 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportWizardBuilder.java
@@ -68,7 +68,6 @@ public class ReportWizardBuilder extends BaseAjaxWizardBuilder<ReportTO> {
private static final long serialVersionUID = -3043839139187792810L;
public Profile(final ReportTO reportTO) {
-
AjaxTextFieldPanel name = new AjaxTextFieldPanel(
"name", "name", new PropertyModel<>(reportTO, "name"), false);
name.addRequiredLabel();
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
index 50ff530..9c434a5 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
@@ -50,6 +50,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.ResourceModel;
import org.apache.syncope.client.console.panels.ToggleableTarget;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel<Serializable> {
@@ -118,8 +119,8 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel<
? ((JobTO) modelObject).getRefDesc() : ((JobTO) modelObject).getRefKey();
} else if (modelObject instanceof ToggleableTarget) {
header = ((ToggleableTarget) modelObject).getAnyType();
- } else if (modelObject instanceof EntityTO) {
- header = ((EntityTO) modelObject).getKey();
+ } else if (modelObject instanceof Domain) {
+ header = ((Domain) modelObject).getKey();
} else {
header = new ResourceModel("actions", StringUtils.EMPTY).getObject();
}
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication.properties
index c6ec2c3..b9826b3 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication.properties
@@ -74,4 +74,6 @@ timeout=Operation is taking too long: it will be executed in background. Please
security=Security
before=Before
after=After
-networkServices=Network Services
+networkservices=Network Services
+keymaster=Keymaster
+domains=Domains
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_it.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_it.properties
index cb11db3..5dbcbe1 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_it.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_it.properties
@@ -74,4 +74,6 @@ timeout=L'operazione sta durando troppo: sar\u00e0 eseguita in background. Verif
security=Sicurezza
before=Prima
after=Dopo
-networkServices=Servizi di Rete
+networkservices=Servizi di Rete
+keymaster=Keymaster
+domains=Domini
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ja.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ja.properties
index 8ea9b6b..d6874c3 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ja.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ja.properties
@@ -72,4 +72,6 @@ timeout=\u64cd\u4f5c\u306b\u9577\u6642\u9593\u304b\u304b\u3063\u3066\u3044\u307e
security=Security
before=Before
after=After
-networkServices=Network Services
+networkservices=Network Services
+keymaster=Keymaster
+domains=Domains
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_pt_BR.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_pt_BR.properties
index 0fe6396..4da4f99 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_pt_BR.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_pt_BR.properties
@@ -74,4 +74,6 @@ timeout=Operation is taking too long: it will be executed in background. Please
security=Security
before=Before
after=After
-networkServices=Network Services
+networkservices=Network Services
+keymaster=Keymaster
+domains=Domains
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ru.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ru.properties
index d19cc40..6d3c060 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ru.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/SyncopeWebApplication_ru.properties
@@ -73,4 +73,6 @@ timeout=Operation is taking too long: it will be executed in background. Please
security=Security
before=Before
after=After
-networkServices=Network Services
+networkservices=Network Services
+keymaster=Keymaster
+domains=Domains
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
index 13dc038..c38ee0d 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
@@ -117,15 +117,21 @@ under the License.
<a href="#" wicket:id="idmPage"><i wicket:id="idmPageIcon"></i><span wicket:id="idmPageLabel"/></a>
</li>
</wicket:container>
+ <li wicket:id="keymasterLI" class="treeview">
+ <a href="#"><i class="fa fa-magic"></i><span><wicket:message key="keymaster"/></span> <span class="pull-right-container"><i class="fa fa-angle-left pull-right"></i></span></a>
+ <ul wicket:id="keymasterUL" class="treeview-menu">
+ <li wicket:id="domainsLI"><a href="#" wicket:id="domains"><i class="fa fa-code-fork"></i><wicket:message key="domains"/></a></li>
+ <li wicket:id="networkservicesLI"><a href="#" wicket:id="networkservices"><i class="fa fa-server"></i><wicket:message key="networkservices"/></a></li>
+ <li wicket:id="parametersLI"><a href="#" wicket:id="parameters"><i class="fa fa-cog"></i><wicket:message key="parameters"/></a></li>
+ </ul>
+ </li>
<li wicket:id="configurationLI" class="treeview">
<a href="#"><i class="fa fa-edit"></i><span><wicket:message key="configuration"/></span> <span class="pull-right-container"><i class="fa fa-angle-left pull-right"></i></span></a>
<ul wicket:id="configurationUL" class="treeview-menu">
<li wicket:id="auditLI"><a href="#" wicket:id="audit"><i class="fa fa-check-square-o"></i><wicket:message key="audit"/></a></li>
<li wicket:id="implementationsLI"><a href="#" wicket:id="implementations"><i class="fa fa-file-code-o"></i><wicket:message key="implementations"/></a></li>
<li wicket:id="logsLI"><a href="#" wicket:id="logs"><i class="fa fa-file-text-o"></i><wicket:message key="logs"/></a></li>
- <li wicket:id="networkServicesLI"><a href="#" wicket:id="networkServices"><i class="fa fa-server"></i><wicket:message key="networkServices"/></a></li>
<li wicket:id="notificationsLI"><a href="#" wicket:id="notifications"><i class="fa fa-envelope-o"></i><wicket:message key="notifications"/></a></li>
- <li wicket:id="parametersLI"><a href="#" wicket:id="parameters"><i class="fa fa-cog"></i><wicket:message key="parameters"/></a></li>
<li wicket:id="policiesLI"><a href="#" wicket:id="policies"><i class="fa fa-list"></i><wicket:message key="policies"/></a></li>
<li wicket:id="securityLI"><a href="#" wicket:id="security"><i class="fa fa-lock"></i><wicket:message key="security"/></a></li>
<li wicket:id="typesLI"><a href="#" wicket:id="types"><i class="fa fa-wrench"></i><wicket:message key="types"/></a></li>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/Domains.html
similarity index 62%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.html
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/Domains.html
index 2c1b7bb..1c6fa24 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/Domains.html
@@ -18,13 +18,19 @@ under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:extend>
- <wicket:enclosure child="field-label">
- <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
- <span wicket:id="jexlInfo" class="glyphicon glyphicon-info-sign" style="cursor: pointer"></span>
- <span wicket:id="externalAction"/>
- </wicket:enclosure>
- <fieldset class="input-group">
- <input type="text" class="form-control" wicket:id="textField" placeholder=""/>
- </fieldset>
+ <section class="content-header">
+ <h1> </h1>
+ <ol class="breadcrumb">
+ <li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard"/></a></li>
+ <li class="active"><wicket:message key="keymaster"/></li>
+ <li class="active"><wicket:message key="domains"/></li>
+ </ol>
+ </section>
+
+ <section class="content" wicket:id="content">
+ <div class="box">
+ <div class="box-body" wicket:id="domainPanel"/>
+ </div>
+ </section>
</wicket:extend>
-</html>
+</html>
\ No newline at end of file
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/NetworkServices.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/NetworkServices.html
index 4645abf..da05fe8 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/NetworkServices.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/NetworkServices.html
@@ -22,8 +22,8 @@ under the License.
<h1> </h1>
<ol class="breadcrumb">
<li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard"></wicket:message></a></li>
- <li class="active"><wicket:message key="configuration"/></li>
- <li class="active"><wicket:message key="networkServices"></wicket:message></li>
+ <li class="active"><wicket:message key="keymaster"/></li>
+ <li class="active"><wicket:message key="networkservices"></wicket:message></li>
</ol>
</section>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/Parameters.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/Parameters.html
index 08fa4ba..ef3003f 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/Parameters.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/Parameters.html
@@ -22,7 +22,7 @@ under the License.
<h1> </h1>
<ol class="breadcrumb">
<li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard"/></a></li>
- <li class="active"><wicket:message key="configuration"/></li>
+ <li class="active"><wicket:message key="keymaster"/></li>
<li class="active"><wicket:message key="parameters"/></li>
</ol>
</section>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/DefaultPreviewer.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainAdminCredentialsPanel.html
similarity index 80%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/DefaultPreviewer.html
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainAdminCredentialsPanel.html
index 7471fed..f243622 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/DefaultPreviewer.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainAdminCredentialsPanel.html
@@ -16,10 +16,11 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" >
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:extend>
- <div style="padding: 8px 0px 1px 10px">
- <i class=" glyphicon glyphicon-paperclip fa-2x" title="Preview not available" alt="Default preview icon"></i>
+ <div class="form-group">
+ <span wicket:id="adminCipherAlgorithm"/>
+ <span wicket:id="adminPassword"/>
</div>
</wicket:extend>
</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_pt_BR.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel.properties
similarity index 50%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_pt_BR.properties
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel.properties
index 193287d..2b3d928 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_pt_BR.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel.properties
@@ -14,4 +14,27 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-confirmMessage=This will remove the current value. Continue?
+jdbcURL=JDBC URL
+maxPoolSize=Pool size: Max
+minIdle=Pool size: Min
+adjust.pool.size=Adjust pool size
+set.admin.credentials=Set admin credentials
+edit.title=adjust pool size
+password_management.title=set admin credentials
+poolMaxActive=Pool: Max active connections
+poolMinIdle=Pool: Min idle connections
+adminCipherAlgorithm=Cipher Algorithm
+adminPassword=Password (encoded)
+any.new=New domain
+jdbcDriver=JDBC Driver
+dbSchema=Database schema
+dbUsername=Database username
+dbPassword=Database password
+transactionIsolation=Transaction isolation
+auditSql=Audit SQL init
+orm=ORM
+databasePlatform=Database platform
+content=Initial content
+keymasterConfParams=Initial conf params
+defaultContent=Leave default content
+defaultKeymasterConfParams=Leave default conf params
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_it.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_it.properties
new file mode 100644
index 0000000..a84d8d6
--- /dev/null
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_it.properties
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+jdbcURL=URL JDBC
+maxPoolSize=Pool size: Max
+minIdle=Pool size: Min
+adjust.pool.size=Imposta la dimensione del pool
+set.admin.credentials=Imposta le credenziali di admin
+edit.title=imposta la dimensione del pool
+password_management.title=Imposta le credenziali di admin
+poolMaxActive=Pool: Max active connections
+poolMinIdle=Pool: Min idle connections
+adminCipherAlgorithm=Algoritmo di cifratura
+adminPassword=Password (codificata)
+any.new=Nuovo dominio
+jdbcDriver=Driver JDBC
+dbSchema=Schema database
+dbUsername=Username database
+dbPassword=Password database
+transactionIsolation=Isolamento transazioni
+auditSql=Audit SQL init
+orm=ORM
+databasePlatform=Piattaforma database
+content=Contenuto iniziale
+keymasterConfParams=Parametri iniziali
+defaultContent=Contenuto iniziale predefinito
+defaultKeymasterConfParams=Parametri iniziali predefiniti
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ja.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_ja.properties
similarity index 50%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ja.properties
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_ja.properties
index 807c589..2b3d928 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ja.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_ja.properties
@@ -14,4 +14,27 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-confirmMessage=\u3053\u308c\u306f\u73fe\u5728\u306e\u5024\u3092\u524a\u9664\u3057\u307e\u3059\u3002\u7d9a\u884c\u3057\u307e\u3059\u304b?
+jdbcURL=JDBC URL
+maxPoolSize=Pool size: Max
+minIdle=Pool size: Min
+adjust.pool.size=Adjust pool size
+set.admin.credentials=Set admin credentials
+edit.title=adjust pool size
+password_management.title=set admin credentials
+poolMaxActive=Pool: Max active connections
+poolMinIdle=Pool: Min idle connections
+adminCipherAlgorithm=Cipher Algorithm
+adminPassword=Password (encoded)
+any.new=New domain
+jdbcDriver=JDBC Driver
+dbSchema=Database schema
+dbUsername=Database username
+dbPassword=Database password
+transactionIsolation=Transaction isolation
+auditSql=Audit SQL init
+orm=ORM
+databasePlatform=Database platform
+content=Initial content
+keymasterConfParams=Initial conf params
+defaultContent=Leave default content
+defaultKeymasterConfParams=Leave default conf params
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_pt_BR.properties
similarity index 50%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.properties
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_pt_BR.properties
index 193287d..2b3d928 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_pt_BR.properties
@@ -14,4 +14,27 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-confirmMessage=This will remove the current value. Continue?
+jdbcURL=JDBC URL
+maxPoolSize=Pool size: Max
+minIdle=Pool size: Min
+adjust.pool.size=Adjust pool size
+set.admin.credentials=Set admin credentials
+edit.title=adjust pool size
+password_management.title=set admin credentials
+poolMaxActive=Pool: Max active connections
+poolMinIdle=Pool: Min idle connections
+adminCipherAlgorithm=Cipher Algorithm
+adminPassword=Password (encoded)
+any.new=New domain
+jdbcDriver=JDBC Driver
+dbSchema=Database schema
+dbUsername=Database username
+dbPassword=Database password
+transactionIsolation=Transaction isolation
+auditSql=Audit SQL init
+orm=ORM
+databasePlatform=Database platform
+content=Initial content
+keymasterConfParams=Initial conf params
+defaultContent=Leave default content
+defaultKeymasterConfParams=Leave default conf params
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_it.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_ru.properties
similarity index 50%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_it.properties
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_ru.properties
index 13be74d..2b3d928 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_it.properties
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainDirectoryPanel_ru.properties
@@ -14,4 +14,27 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-confirmMessage=Questa azione rimuover\u00e0 il valore corrente. Continuare?
+jdbcURL=JDBC URL
+maxPoolSize=Pool size: Max
+minIdle=Pool size: Min
+adjust.pool.size=Adjust pool size
+set.admin.credentials=Set admin credentials
+edit.title=adjust pool size
+password_management.title=set admin credentials
+poolMaxActive=Pool: Max active connections
+poolMinIdle=Pool: Min idle connections
+adminCipherAlgorithm=Cipher Algorithm
+adminPassword=Password (encoded)
+any.new=New domain
+jdbcDriver=JDBC Driver
+dbSchema=Database schema
+dbUsername=Database username
+dbPassword=Database password
+transactionIsolation=Transaction isolation
+auditSql=Audit SQL init
+orm=ORM
+databasePlatform=Database platform
+content=Initial content
+keymasterConfParams=Initial conf params
+defaultContent=Leave default content
+defaultKeymasterConfParams=Leave default conf params
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainPoolModalPanel.html
similarity index 84%
rename from client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainPoolModalPanel.html
index c2ec0a9..a82bd45 100644
--- a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainPoolModalPanel.html
@@ -17,7 +17,10 @@ specific language governing permissions and limitations
under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <label wicket:id="label"/>
- </wicket:panel>
+ <wicket:extend>
+ <div class="form-group">
+ <span wicket:id="poolMaxActive"/>
+ <span wicket:id="poolMinIdle"/>
+ </div>
+ </wicket:extend>
</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/AbstractBinaryPreviewer.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$AdminCredentials.html
similarity index 83%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/AbstractBinaryPreviewer.html
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$AdminCredentials.html
index 249ac51..8cbf977 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/preview/AbstractBinaryPreviewer.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$AdminCredentials.html
@@ -16,8 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
-<html xmlns="http://www.w3.org/1999/xhtml" >
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <wicket:child/>
+ <div wicket:id="adminCipherAlgorithm"/>
+ <div wicket:id="adminPassword"/>
</wicket:panel>
</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$Content.html
similarity index 92%
copy from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
copy to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$Content.html
index c2ec0a9..28df851 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$Content.html
@@ -18,6 +18,7 @@ under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <label wicket:id="label"/>
+ <div wicket:id="defaultContent"/>
+ <div wicket:id="content"/>
</wicket:panel>
</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$KeymasterConfParams.html
similarity index 91%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$KeymasterConfParams.html
index c2ec0a9..ce9e935 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/LabelPanel.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$KeymasterConfParams.html
@@ -18,6 +18,7 @@ under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <label wicket:id="label"/>
+ <div wicket:id="defaultKeymasterConfParams"/>
+ <div wicket:id="content"/>
</wicket:panel>
</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/any/PasswordPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$Storage.html
similarity index 68%
rename from client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/any/PasswordPanel.html
rename to client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$Storage.html
index 7adf2a0..2ad3372 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/any/PasswordPanel.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/DomainWizardBuilder$Storage.html
@@ -18,16 +18,17 @@ under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <form wicket:id="passwordInnerForm">
- <div class="form-group">
- <span wicket:id="password"/>
- </div>
- <div class="form-group">
- <span wicket:id="confirmPassword"/>
- </div>
- <div class="form-group">
- <span wicket:id="storePasswordInSyncope"/>
- </div>
- </form>
+ <div wicket:id="key"/>
+ <div wicket:id="jdbcDriver"/>
+ <div wicket:id="jdbcURL"/>
+ <div wicket:id="dbSchema"/>
+ <div wicket:id="dbUsername"/>
+ <div wicket:id="dbPassword"/>
+ <div wicket:id="transactionIsolation"/>
+ <div wicket:id="poolMaxActive"/>
+ <div wicket:id="poolMinIdle"/>
+ <div wicket:id="auditSql"/>
+ <div wicket:id="orm"/>
+ <div wicket:id="databasePlatform"/>
</wicket:panel>
</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AbstractFieldPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AbstractFieldPanel.html
deleted file mode 100644
index 1fd3275..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AbstractFieldPanel.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <wicket:fragment wicket:id="requiredFragment">
- <span wicket:id="requiredLabel"/>
- </wicket:fragment>
-
- <wicket:fragment wicket:id="externalActionFragment">
- <span wicket:id="externalAction"/>
- </wicket:fragment>
-
- <wicket:fragment wicket:id="emptyFragment">
- </wicket:fragment>
-
- <wicket:child/>
- </wicket:panel>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.html
deleted file mode 100644
index c4b3da7..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:extend>
- <wicket:enclosure child="field-label">
- <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
- <span wicket:id="externalAction"/>
- </wicket:enclosure>
- <fieldset class="input-group">
- <select wicket:id="dropDownChoiceField" />
- </fieldset>
- </wicket:extend>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.html
deleted file mode 100644
index 633a310..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:extend>
- <form wicket:id="form">
- <div class="form-group input-group">
- <span wicket:id="filter">[FILTER]</span>
- <span class="input-group-addon">
- <a href="#" wicket:id="search"><i class="glyphicon glyphicon-search"></i></a>
- </span>
- </div>
- </form>
- <wicket:enclosure child="field-label">
- <div><label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/></div>
- <span wicket:id="externalAction"/>
- </wicket:enclosure>
- <fieldset class="input-group">
- <span wicket:id="paletteField">[Palette]</span>
- </fieldset>
- </wicket:extend>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.html
deleted file mode 100644
index 56c60a8..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:head>
- <style type="text/css">
- .input-group .ui-spinner {
- width: 100%;
- }
- .ui-state-default .ui-icon {
- background-image: url("../../webjars/jquery-ui/${jquery-ui.version}/images/ui-icons_222222_256x240.png");
- }
- </style>
- </wicket:head>
- <wicket:extend>
- <wicket:enclosure child="field-label">
- <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
- <span wicket:id="externalAction"/>
- </wicket:enclosure>
- <fieldset class="input-group">
- <input wicket:id="spinner"/>
- </fieldset>
- </wicket:extend>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.html
deleted file mode 100644
index 632307d..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:extend>
- <wicket:enclosure child="field-label">
- <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
- <span wicket:id="externalAction"/>
- </wicket:enclosure>
- <div class="input-group input-group-sm">
- <span class="input-group-btn">
- <button type="button" class="btn btn-warning btn-flat"
- wicket:message="confirm:confirmMessage"
- onclick="var pwd = $(this).parent().next('input');
- var children = $(this).children();
- var confirmMessage = $(this).attr('confirm');
- if (pwd.is('[readonly]')) {
- if (pwd.val() === '') {
- pwd.removeAttr('readonly');
- children.attr('class', 'fa fa-unlock');
- } else {
- bootbox.confirm(confirmMessage, function (result) {
- if (result === true) {
- pwd.removeAttr('readonly');
- pwd.val('');
- children.attr('class', 'fa fa-unlock');
- }
- return true;
- });
- }
- }
- "><i class="fa fa-lock"></i></button>
- </span>
- <input type="password" class="form-control" wicket:id="encryptedField" readonly="true"/>
- <span class="input-group-btn">
- <button type="button" class="btn btn-primary btn-flat"
- onmousedown="var pwd = $(this).parent().prev('input');
- if (!pwd.is('[readonly]')) {
- pwd.attr('type', 'text');
- $(this).children().attr('class', 'fa fa-eye-slash');
- }"
- onmouseup="var pwd = $(this).parent().prev('input');
- if (!pwd.is('[readonly]')) {
- pwd.attr('type', 'password');
- $(this).children().attr('class', 'fa fa-eye');
- }"
- ><i class="fa fa-eye"></i></button>
- </span>
- </div>
- </wicket:extend>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ru.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ru.properties
deleted file mode 100644
index 1c45ef7..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel_ru.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-#
-# field.DateTimeFieldPanel$DateTimeFormValidator=\u00d0\u009f\u00d0\u00be\u00d0\u00bb\u00d0\u00b5 '${label0}' \u00d0\u00b4\u00d0\u00be\u00d0\u00bb\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d1\u008c \u00d0\u00b7\u00d0\u00b0\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00be\u00d1\u0081\u00d1\u0082\u00d1\u008c\u00d1\u008e
-confirmMessage=This will remove the current value. Continue?
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/NonI18nPalette.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/NonI18nPalette.html
deleted file mode 100644
index 79728da..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/NonI18nPalette.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <input type="hidden" wicket:id="recorder"/>
- <div class="col-md-5">
- <div class="form-group">
- <label>
- <span wicket:id="availableHeader">[available header]</span>
- </label>
- <select class="form-control" style="min-width: 100px;" wicket:id="choices">[choices]</select>
- </div>
- </div>
- <div style="width: 20px; float: left; padding-top: 30px; text-align: center">
- <div style="padding-top: 2px;">
- <a wicket:id="addAllButton"><i class="glyphicon glyphicon-forward"></i></a>
- </div>
- <div style="padding-top: 2px;">
- <a wicket:id="removeAllButton"><i class="glyphicon glyphicon-backward"></i></a>
- </div>
- <div style="padding-top: 2px;">
- <a wicket:id="addButton"><i class="glyphicon glyphicon-triangle-right"></i></a>
- </div>
- <div style="padding-top: 2px;">
- <a wicket:id="removeButton"><i class="glyphicon glyphicon-triangle-left"></i></a>
- </div>
- <div style="padding-top: 2px;">
- <a wicket:id="moveUpButton"><i class="glyphicon glyphicon-triangle-top"></i></a>
- </div>
- <div style="padding-top: 2px;">
- <a wicket:id="moveDownButton"><i class="glyphicon glyphicon-triangle-bottom"></i></a>
- </div>
- </div>
- <div class="col-md-5">
- <div class="form-group">
- <label>
- <span wicket:id="selectedHeader">[selected header]</span>
- </label>
- <select class="form-control" style="min-width: 100px;" wicket:id="selection">[selection]</select>
- </div>
- </div>
- </wicket:panel>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
deleted file mode 100644
index 1d5a8a2..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:head>
- <style type="text/css">
- div.position {
- position: fixed;
- right: 5px;
- bottom: 20px;
- width: auto;
- z-index: 999999;
- }
- </style>
- </wicket:head>
- <wicket:panel>
-
- <div id="appendto" class="position"></div>
- <span wicket:id="feedback"></span>
-
- <script id="errorTemplate" type="text/x-kendo-template">
- <div class="alert alert-danger alert-dismissible" style="margin-bottom: 0px; min-width: 370px">
- <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
- <h4><i class="icon fa fa-ban"></i> Error!</h4>
- #= message #
- </div>
- </script>
-
- <script id="warningTemplate" type="text/x-kendo-template">
- <div class="alert alert-warning alert-dismissible" style="margin-bottom: 0px; min-width: 370px">
- <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
- <h4><i class="icon fa fa-ban"></i> Warning!</h4>
- #= message #
- </div>
- </script>
-
- <script id="successTemplate" type="text/x-kendo-template">
- <div class="alert alert-success alert-dismissible" style="margin-bottom: 0px; min-width: 370px">
- <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
- <h4><i class="icon fa fa-check"></i> Success!</h4>
- #= message #
- </div>
- </script>
- </wicket:panel>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wicket/markup/html/bootstrap/tabs/Accordion.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wicket/markup/html/bootstrap/tabs/Accordion.html
deleted file mode 100644
index 76ba597..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wicket/markup/html/bootstrap/tabs/Accordion.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <div class="panel box box-primary" wicket:id="tabs">
- <div class="box-header with-border">
- <h4 class="box-title">
- <a wicket:id="title" class="accordion-toggle" data-toggle="collapse">Title</a>
- </h4>
- </div>
- <div wicket:id="body" class="panel-collapse collapse">
- <div class="box-body" wicket:id="content">Content</div>
- </div>
- </div>
- </wicket:panel>
-</html>
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.properties
deleted file mode 100644
index cafa9d6..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-wizard.cancel.error = Wizard error on cancel
-wizard.apply.error = Wizard error on apply changes
-next=Next >
-previous=< Prev
-finish=Finish
-last=Last
-cancel=Cancel
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_it.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_it.properties
deleted file mode 100644
index 3230f79..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_it.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-wizard.cancel.error = Errore wizard in annullamento operazione
-wizard.apply.error = Errore wizard in fase di commit
-next=Succ >
-previous=< Prec
-finish=Termina
-last=Ultimo
-cancel=Annulla
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ja.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ja.properties
deleted file mode 100644
index 8c1969a..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ja.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-wizard.cancel.error = \u30ad\u30e3\u30f3\u30bb\u30eb\u6642\u306b\u30a6\u30a3\u30b6\u30fc\u30c9\u30a8\u30e9\u30fc
-wizard.apply.error = \u5909\u66f4\u306e\u9069\u7528\u6642\u306b\u30a6\u30a3\u30b6\u30fc\u30c9\u30a8\u30e9\u30fc
-next=\u6b21\u3078 >
-previous=< \u524d\u3078
-finish=\u5b8c\u4e86
-last=\u6700\u5f8c
-cancel=\u30ad\u30e3\u30f3\u30bb\u30eb
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_pt_BR.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_pt_BR.properties
deleted file mode 100644
index 6cca386..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_pt_BR.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-wizard.cancel.error = Erro em assistente de cancelar
-wizard.apply.error = Assistente de erro em aplicar as altera\u00e7\u00f5es
-next=Segu >
-previous=< Prec
-finish=Terminar
-last=\u00daltimo
-cancel=Cancelar
diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ru.properties b/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ru.properties
deleted file mode 100644
index af93f5a..0000000
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard_ru.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-# wizard.cancel.error = Во время отмены произошла ошибка
-wizard.cancel.error = \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043c\u0435\u043d\u044b \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430
-# wizard.apply.error = Во время применения изменений произошла ошибка
-wizard.apply.error = \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430
-# next=Далее >
-next=\u0414\u0430\u043b\u0435\u0435 >
-# previous=< Назад
-previous=< \u041d\u0430\u0437\u0430\u0434
-# finish=Завершить
-finish=\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c
-# last=В конец
-last=\u0412 \u043a\u043e\u043d\u0435\u0446
-# cancel=Отмена
-cancel=\u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/client/idrepo/enduser/pom.xml b/client/idrepo/enduser/pom.xml
index cda2a38..cfa8351 100644
--- a/client/idrepo/enduser/pom.xml
+++ b/client/idrepo/enduser/pom.xml
@@ -52,51 +52,6 @@ under the License.
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
-
- <dependency>
- <groupId>org.apache.wicket</groupId>
- <artifactId>wicket-auth-roles</artifactId>
- </dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-jquery-ui</artifactId>
- </dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-kendo-ui</artifactId>
- </dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-kendo-ui-culture</artifactId>
- </dependency>
- <dependency>
- <groupId>com.googlecode.wicket-jquery-ui</groupId>
- <artifactId>wicket-kendo-ui-theme-bootstrap</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.wicket</groupId>
- <artifactId>wicket-native-websocket-javax</artifactId>
- </dependency>
- <dependency>
- <groupId>de.agilecoders.wicket</groupId>
- <artifactId>wicket-bootstrap-core</artifactId>
- </dependency>
- <dependency>
- <groupId>de.agilecoders.wicket</groupId>
- <artifactId>wicket-bootstrap-extensions</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.syncope.common.keymaster</groupId>
- <artifactId>syncope-common-keymaster-client-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.syncope.client.idrepo</groupId>
- <artifactId>syncope-client-idrepo-lib</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.syncope.client.idrepo</groupId>
@@ -105,11 +60,6 @@ under the License.
</dependency>
<dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-rs-security-jose</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
</dependency>
@@ -128,30 +78,14 @@ under the License.
</dependency>
<dependency>
<groupId>org.webjars</groupId>
- <artifactId>codemirror</artifactId>
- </dependency>
- <dependency>
- <groupId>org.webjars</groupId>
- <artifactId>google-diff-match-patch</artifactId>
- </dependency>
- <dependency>
- <groupId>org.webjars</groupId>
<artifactId>jsplumb</artifactId>
</dependency>
<dependency>
- <groupId>org.webjars.bower</groupId>
- <artifactId>chart.js</artifactId>
- </dependency>
- <dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery-cookie</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
- <artifactId>jquery-ui</artifactId>
- </dependency>
- <dependency>
- <groupId>org.webjars</groupId>
<artifactId>jQuery-slimScroll</artifactId>
</dependency>
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java
index d1c2a2b..34dce75 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java
@@ -34,7 +34,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
-import java.util.stream.Collectors;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
@@ -50,14 +49,10 @@ import org.apache.syncope.client.enduser.pages.MustChangePassword;
import org.apache.syncope.client.enduser.pages.Self;
import org.apache.syncope.client.enduser.pages.SelfConfirmPasswordReset;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
-import org.apache.syncope.client.ui.commons.BaseApplication;
import org.apache.syncope.client.ui.commons.SyncopeUIRequestCycleListener;
-import org.apache.syncope.common.keymaster.client.api.DomainOps;
import org.apache.syncope.common.keymaster.client.api.model.NetworkService;
import org.apache.syncope.common.keymaster.client.api.ServiceOps;
-import org.apache.syncope.common.keymaster.client.api.model.Domain;
import org.apache.syncope.common.lib.PropertyUtils;
-import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.wicket.Page;
import org.apache.wicket.Session;
import org.apache.wicket.WicketRuntimeException;
@@ -80,7 +75,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
-public class SyncopeWebApplication extends WicketBootStandardWebApplication implements BaseApplication {
+public class SyncopeWebApplication extends WicketBootStandardWebApplication {
private static final Logger LOG = LoggerFactory.getLogger(SyncopeWebApplication.class);
@@ -105,9 +100,6 @@ public class SyncopeWebApplication extends WicketBootStandardWebApplication impl
@Autowired
private ServiceOps serviceOps;
- @Autowired
- private DomainOps domainOps;
-
@Value("${service.discovery.address}")
private String address;
@@ -334,17 +326,6 @@ public class SyncopeWebApplication extends WicketBootStandardWebApplication impl
setUseCompression(useGZIPCompression);
}
- @Override
- public List<String> getDomains() {
- synchronized (LOG) {
- if (domains == null) {
- domains = domainOps.list().stream().map(Domain::getKey).sorted().collect(Collectors.toList());
- domains.add(0, SyncopeConstants.MASTER_DOMAIN);
- }
- }
- return domains;
- }
-
protected Class<? extends WebPage> getSignInPageClass() {
return Login.class;
}
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Login.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Login.java
index 2e4a0c7..f86ccdf 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Login.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/Login.java
@@ -25,7 +25,6 @@ import java.util.Locale;
import org.apache.syncope.client.enduser.SyncopeWebApplication;
import org.apache.syncope.client.enduser.SyncopeEnduserSession;
import org.apache.syncope.client.enduser.init.ClassPathScanImplementationLookup;
-import org.apache.syncope.client.ui.commons.BaseApplication;
import org.apache.syncope.client.ui.commons.BaseLogin;
import org.apache.syncope.client.ui.commons.BaseSession;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -49,11 +48,6 @@ public class Login extends BaseLogin {
}
@Override
- protected BaseApplication getBaseApplication() {
- return SyncopeWebApplication.get();
- }
-
- @Override
protected BaseSession getBaseSession() {
return SyncopeEnduserSession.get();
}
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfConfirmPasswordReset.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfConfirmPasswordReset.java
index 5600a8d..6a6cb36 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfConfirmPasswordReset.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfConfirmPasswordReset.java
@@ -18,13 +18,19 @@
*/
package org.apache.syncope.client.enduser.pages;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.enduser.SyncopeEnduserSession;
import org.apache.syncope.client.ui.commons.Constants;
import org.apache.syncope.client.ui.commons.DomainDropDown;
import org.apache.syncope.client.ui.commons.markup.html.form.AjaxPasswordFieldPanel;
import org.apache.syncope.client.ui.commons.markup.html.form.FieldPanel;
+import org.apache.syncope.common.keymaster.client.api.DomainOps;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.rest.api.service.UserSelfService;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
@@ -35,13 +41,31 @@ import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.StatelessForm;
import org.apache.wicket.markup.html.form.validation.EqualPasswordInputValidator;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.spring.injection.annot.SpringBean;
public class SelfConfirmPasswordReset extends BaseEnduserWebPage {
private static final long serialVersionUID = -2166782304542750726L;
+ @SpringBean
+ private DomainOps domainOps;
+
+ private final LoadableDetachableModel<List<String>> domains = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 4659376149825914247L;
+
+ @Override
+ protected List<String> load() {
+ List<String> current = new ArrayList<>();
+ current.addAll(domainOps.list().stream().map(Domain::getKey).sorted().collect(Collectors.toList()));
+ current.add(0, SyncopeConstants.MASTER_DOMAIN);
+ return current;
+ }
+ };
+
public SelfConfirmPasswordReset(final PageParameters parameters) {
super(parameters);
@@ -62,7 +86,7 @@ public class SelfConfirmPasswordReset extends BaseEnduserWebPage {
form.setOutputMarkupId(true);
content.add(form);
- DomainDropDown domainSelect = new DomainDropDown("domain");
+ DomainDropDown domainSelect = new DomainDropDown("domain", domains);
domainSelect.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_BLUR) {
private static final long serialVersionUID = -1107858522700306810L;
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/SelfPwdResetPanel.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/SelfPwdResetPanel.java
index cc996cd..94a6ae0 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/SelfPwdResetPanel.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/SelfPwdResetPanel.java
@@ -18,6 +18,9 @@
*/
package org.apache.syncope.client.enduser.panels;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.enduser.SyncopeEnduserSession;
import org.apache.syncope.client.enduser.SyncopeWebApplication;
@@ -27,7 +30,10 @@ import org.apache.syncope.client.enduser.wizards.any.CaptchaPanel;
import org.apache.syncope.client.ui.commons.Constants;
import org.apache.syncope.client.ui.commons.DomainDropDown;
import org.apache.syncope.client.ui.commons.markup.html.form.AjaxTextFieldPanel;
+import org.apache.syncope.common.keymaster.client.api.DomainOps;
+import org.apache.syncope.common.keymaster.client.api.model.Domain;
import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.SecurityQuestionTO;
import org.apache.syncope.common.rest.api.service.SecurityQuestionService;
import org.apache.syncope.common.rest.api.service.UserSelfService;
@@ -40,9 +46,11 @@ import org.apache.wicket.event.IEventSource;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.spring.injection.annot.SpringBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,6 +60,22 @@ public class SelfPwdResetPanel extends Panel implements IEventSource {
private static final Logger LOG = LoggerFactory.getLogger(SelfPwdResetPanel.class);
+ @SpringBean
+ private DomainOps domainOps;
+
+ private final LoadableDetachableModel<List<String>> domains = new LoadableDetachableModel<List<String>>() {
+
+ private static final long serialVersionUID = 4659376149825914247L;
+
+ @Override
+ protected List<String> load() {
+ List<String> current = new ArrayList<>();
+ current.addAll(domainOps.list().stream().map(Domain::getKey).sorted().collect(Collectors.toList()));
+ current.add(0, SyncopeConstants.MASTER_DOMAIN);
+ return current;
+ }
+ };
+
private String usernameText;
private final TextField<String> securityQuestion;
@@ -63,7 +87,7 @@ public class SelfPwdResetPanel extends Panel implements IEventSource {
public SelfPwdResetPanel(final String id, final PageReference pageRef) {
super(id);
- DomainDropDown domainSelect = new DomainDropDown("domain");
+ DomainDropDown domainSelect = new DomainDropDown("domain", domains);
domainSelect.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_BLUR) {
private static final long serialVersionUID = -1107858522700306810L;
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.html b/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.html
deleted file mode 100644
index 54e63c3..0000000
--- a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <head>
- <title>Ajax checkbox panel</title>
- </head>
- <body>
- <wicket:extend>
- <div class="checkbox">
- <input type="checkbox" wicket:id="checkboxField" />
- <wicket:enclosure child="field-label">
- <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
- <span wicket:id="externalAction"/>
- </wicket:enclosure>
- </div>
- </wicket:extend>
- </body>
-</html>
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPasswordFieldPanel.html b/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPasswordFieldPanel.html
deleted file mode 100644
index bddd03a..0000000
--- a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPasswordFieldPanel.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <head>
- <title>Ajaxt password field panel</title>
- </head>
- <body>
- <wicket:extend>
- <wicket:enclosure child="field-label">
- <label wicket:id="field-label">[LABEL]</label><span wicket:id="required"/>
- <span wicket:id="externalAction"/>
- </wicket:enclosure>
- <!--to be restored and merged with password strength meter-->
- <!--<fieldset class="input-group">-->
- <fieldset>
- <input type="password" class="form-control" wicket:id="passwordField" />
- </fieldset>
- </wicket:extend>
- </body>
-</html>
\ No newline at end of file
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.html b/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.html
deleted file mode 100644
index 96f296e..0000000
--- a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <head>
- <title></title>
- </head>
- <body>
- <wicket:panel>
- <div class="wizard-form">
- <form wicket:id="form">
- <div class="wizard-overview">
- <div wicket:id="overview"></div>
- </div>
- <div class="wizard-header">
- <div wicket:id="header"></div>
- </div>
- <div class="wizard-view">
- <div wicket:id="view"></div>
- </div>
- <div class="wizard-buttons">
- <div wicket:id="buttons"></div>
- </div>
- </form>
- </div>
- <span wicket:id="outerObjectsRepeater">
- <div wicket:id="outer"/>
- </span>
- </wicket:panel>
- </body>
-</html>
diff --git a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizardMgtButtonBar.html b/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizardMgtButtonBar.html
deleted file mode 100644
index 8b51391..0000000
--- a/client/idrepo/enduser/src/main/resources/org/apache/syncope/client/ui/commons/wizards/AjaxWizardMgtButtonBar.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <head>
- <title></title>
- </head>
- <body>
- <wicket:panel xmlns:wicket="http://wicket.apache.org">
-
- <span class="pull-left">
- <input wicket:id="cancel" type="submit" wicket:message="value:cancel" class="btn btn-default"/>
- </span>
- <span class="pull-right">
- <input wicket:id="previous" type="submit" wicket:message="value:previous" class="btn btn-default"/>
- <input wicket:id="next" type="submit" wicket:message="value:next" class="btn btn-default"/>
- <input wicket:id="last" type="submit" wicket:message="value:last" class="btn btn-default"/>
- <input wicket:id="finish" type="submit" wicket:message="value:finish" class="btn btn-primary"/>
- </span>
-
- </wicket:panel>
- </body>
-</html>
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoEntitlement.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoEntitlement.java
index 56850cc..63cf758 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoEntitlement.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoEntitlement.java
@@ -132,7 +132,7 @@ public final class IdRepoEntitlement {
public static final String GROUP_DELETE = "GROUP_DELETE";
- public static final String INTERNAL_STORAGE_EXPORT = "INTERNAL_STORAGE_EXPORT";
+ public static final String KEYMASTER = "KEYMASTER";
public static final String TASK_LIST = "TASK_LIST";
diff --git a/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/DomainOps.java b/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/DomainOps.java
index 00224b2..b7ec18a 100644
--- a/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/DomainOps.java
+++ b/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/DomainOps.java
@@ -35,7 +35,7 @@ public interface DomainOps {
void changeAdminPassword(String key, String password, CipherAlgorithm cipherAlgorithm);
- void adjustPoolSize(String key, int maxPoolSize, int minIdle);
+ void adjustPoolSize(String key, int poolMaxActive, int poolMinIdle);
void delete(String key);
}
diff --git a/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java b/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java
index 3e659ac..2c156ec 100644
--- a/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java
+++ b/common/keymaster/client-api/src/main/java/org/apache/syncope/common/keymaster/client/api/model/Domain.java
@@ -84,13 +84,13 @@ public class Domain implements Serializable {
return this;
}
- public Builder maxPoolSize(final int maxPoolSize) {
- this.domain.maxPoolSize = maxPoolSize;
+ public Builder poolMaxActive(final int poolMaxActive) {
+ this.domain.poolMaxActive = poolMaxActive;
return this;
}
- public Builder minIdle(final int minIdle) {
- this.domain.minIdle = minIdle;
+ public Builder poolMinIdle(final int poolMinIdle) {
+ this.domain.poolMinIdle = poolMinIdle;
return this;
}
@@ -148,9 +148,9 @@ public class Domain implements Serializable {
private TransactionIsolation transactionIsolation = TransactionIsolation.TRANSACTION_READ_COMMITTED;
- private int maxPoolSize = 10;
+ private int poolMaxActive = 10;
- private int minIdle = 2;
+ private int poolMinIdle = 2;
private String auditSql = "audit.sql";
@@ -194,20 +194,20 @@ public class Domain implements Serializable {
return transactionIsolation;
}
- public int getMaxPoolSize() {
- return maxPoolSize;
+ public int getPoolMaxActive() {
+ return poolMaxActive;
}
- public void setMaxPoolSize(final int maxPoolSize) {
- this.maxPoolSize = maxPoolSize;
+ public void setPoolMaxActive(final int poolMaxActive) {
+ this.poolMaxActive = poolMaxActive;
}
- public int getMinIdle() {
- return minIdle;
+ public int getPoolMinIdle() {
+ return poolMinIdle;
}
- public void setMinIdle(final int minIdle) {
- this.minIdle = minIdle;
+ public void setPoolMinIdle(final int poolMinIdle) {
+ this.poolMinIdle = poolMinIdle;
}
public String getAuditSql() {
@@ -275,8 +275,8 @@ public class Domain implements Serializable {
append(dbUsername).
append(dbPassword).
append(transactionIsolation).
- append(maxPoolSize).
- append(minIdle).
+ append(poolMaxActive).
+ append(poolMinIdle).
append(auditSql).
append(orm).
append(databasePlatform).
@@ -307,8 +307,8 @@ public class Domain implements Serializable {
append(dbUsername, other.dbUsername).
append(dbPassword, other.dbPassword).
append(transactionIsolation, other.transactionIsolation).
- append(maxPoolSize, other.maxPoolSize).
- append(minIdle, other.minIdle).
+ append(poolMaxActive, other.poolMaxActive).
+ append(poolMinIdle, other.poolMinIdle).
append(auditSql, other.auditSql).
append(orm, other.orm).
append(databasePlatform, other.databasePlatform).
@@ -329,8 +329,8 @@ public class Domain implements Serializable {
+ ", dbUsername=" + dbUsername
+ ", dbPassword=" + dbPassword
+ ", transactionIsolation=" + transactionIsolation
- + ", maxPoolSize=" + maxPoolSize
- + ", minIdle=" + minIdle
+ + ", poolMaxSize=" + poolMaxActive
+ + ", poolMinIdle=" + poolMinIdle
+ ", auditSql=" + auditSql
+ ", orm=" + orm
+ ", databasePlatform=" + databasePlatform
diff --git a/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOps.java b/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOps.java
index 2ff4726..1fd2ce6 100644
--- a/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOps.java
+++ b/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOps.java
@@ -165,12 +165,12 @@ public class ZookeeperDomainOps implements DomainOps, InitializingBean {
}
@Override
- public void adjustPoolSize(final String key, final int maxPoolSize, final int minIdle) {
+ public void adjustPoolSize(final String key, final int poolMaxActive, final int poolMinIdle) {
try {
Domain domain = read(key);
- domain.setMaxPoolSize(maxPoolSize);
- domain.setMinIdle(minIdle);
+ domain.setPoolMaxActive(poolMaxActive);
+ domain.setPoolMinIdle(poolMinIdle);
client.setData().forPath(buildDomainPath(key), MAPPER.writeValueAsBytes(domain));
} catch (KeymasterException e) {
throw e;
diff --git a/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOpsITCase.java b/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOpsITCase.java
index ed53738..1741f29 100644
--- a/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOpsITCase.java
+++ b/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperDomainOpsITCase.java
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
import java.util.List;
import java.util.UUID;
@@ -59,13 +60,20 @@ public class ZookeeperDomainOpsITCase {
assertEquals(Domain.TransactionIsolation.TRANSACTION_READ_UNCOMMITTED, domain.getTransactionIsolation());
assertEquals("password", domain.getAdminPassword());
assertEquals(CipherAlgorithm.BCRYPT, domain.getAdminCipherAlgorithm());
- assertEquals(10, domain.getMaxPoolSize());
- assertEquals(2, domain.getMinIdle());
+ assertEquals(10, domain.getPoolMaxActive());
+ assertEquals(2, domain.getPoolMinIdle());
List<Domain> list = domainOps.list();
assertNotNull(list);
assertEquals(domain, list.get(0));
+ try {
+ domainOps.create(new Domain.Builder(domain.getKey()).build());
+ fail();
+ } catch (KeymasterException e) {
+ assertNotNull(e);
+ }
+
domainOps.changeAdminPassword(key, "newpassword", CipherAlgorithm.SSHA512);
domain = domainOps.read(key);
@@ -75,8 +83,8 @@ public class ZookeeperDomainOpsITCase {
domainOps.adjustPoolSize(key, 100, 23);
domain = domainOps.read(key);
- assertEquals(100, domain.getMaxPoolSize());
- assertEquals(23, domain.getMinIdle());
+ assertEquals(100, domain.getPoolMaxActive());
+ assertEquals(23, domain.getPoolMinIdle());
domainOps.delete(key);
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
index 338671a..e76aa59 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
@@ -493,7 +493,7 @@ public class SyncopeLogic extends AbstractLogic<EntityTO> {
return groupDataBinder.getTypeExtensionTO(typeExt.get());
}
- @PreAuthorize("hasRole('" + IdRepoEntitlement.INTERNAL_STORAGE_EXPORT + "')")
+ @PreAuthorize("hasRole('" + IdRepoEntitlement.KEYMASTER + "')")
@Transactional(readOnly = true)
public void exportInternalStorageContent(final OutputStream os) {
try {
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/DomainConfFactory.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/DomainConfFactory.java
index 68a6982..1718a87 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/DomainConfFactory.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/DomainConfFactory.java
@@ -90,8 +90,8 @@ public class DomainConfFactory implements DomainRegistry, EnvironmentAware {
hikariConfig.setPassword(domain.getDbPassword());
hikariConfig.setSchema(domain.getDbSchema());
hikariConfig.setTransactionIsolation(domain.getTransactionIsolation().name());
- hikariConfig.setMaximumPoolSize(domain.getMaxPoolSize());
- hikariConfig.setMinimumIdle(domain.getMinIdle());
+ hikariConfig.setMaximumPoolSize(domain.getPoolMaxActive());
+ hikariConfig.setMinimumIdle(domain.getPoolMinIdle());
HikariDataSource localDomainDataSource = new HikariDataSource(hikariConfig);
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java
index c933ff5..6364dd2 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/StartupDomainLoader.java
@@ -112,9 +112,9 @@ public class StartupDomainLoader implements SyncopeCoreLoader {
} else if (prop.endsWith(".orm")) {
builder.orm(props.getProperty(prop));
} else if (prop.endsWith(".pool.maxActive")) {
- builder.maxPoolSize(Integer.parseInt(props.getProperty(prop)));
+ builder.poolMaxActive(Integer.parseInt(props.getProperty(prop)));
} else if (prop.endsWith(".pool.minIdle")) {
- builder.minIdle(Integer.parseInt(props.getProperty(prop)));
+ builder.poolMinIdle(Integer.parseInt(props.getProperty(prop)));
} else if (prop.endsWith(".audit.sql")) {
builder.auditSql(props.getProperty(prop));
}
diff --git a/ext/self-keymaster/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java b/ext/self-keymaster/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java
index 789f39d..61d4ad8 100644
--- a/ext/self-keymaster/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java
+++ b/ext/self-keymaster/logic/src/main/java/org/apache/syncope/core/logic/DomainLogic.java
@@ -29,6 +29,7 @@ import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.types.CipherAlgorithm;
import org.apache.syncope.core.persistence.api.dao.DomainDAO;
+import org.apache.syncope.core.persistence.api.dao.DuplicateException;
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.entity.DomainEntity;
import org.apache.syncope.core.persistence.api.entity.SelfKeymasterEntityFactory;
@@ -69,6 +70,10 @@ public class DomainLogic extends AbstractTransactionalLogic<EntityTO> {
throw new KeymasterException("Cannot create domain " + SyncopeConstants.MASTER_DOMAIN);
}
+ if (domainDAO.find(domain.getKey()) != null) {
+ throw new DuplicateException("Domain " + domain.getKey() + " already existing");
+ }
+
DomainEntity domainEntity = entityFactory.newDomainEntity();
domainEntity.setKey(domain.getKey());
domainEntity.set(domain);
@@ -94,15 +99,15 @@ public class DomainLogic extends AbstractTransactionalLogic<EntityTO> {
}
@PreAuthorize("@environment.getProperty('keymaster.username') == authentication.name and not(isAnonymous())")
- public void adjustPoolSize(final String key, final int maxPoolSize, final int minIdle) {
+ public void adjustPoolSize(final String key, final int poolMaxActive, final int poolMinIdle) {
DomainEntity domain = domainDAO.find(key);
if (domain == null) {
throw new NotFoundException("Domain " + key);
}
Domain domainObj = domain.get();
- domainObj.setMaxPoolSize(maxPoolSize);
- domainObj.setMinIdle(minIdle);
+ domainObj.setPoolMaxActive(poolMaxActive);
+ domainObj.setPoolMinIdle(poolMinIdle);
domain.set(domainObj);
domainDAO.save(domain);
}
diff --git a/ext/self-keymaster/rest-api/src/main/java/org/apache/syncope/ext/self/keymaster/api/service/DomainService.java b/ext/self-keymaster/rest-api/src/main/java/org/apache/syncope/ext/self/keymaster/api/service/DomainService.java
index 40a390d..85e3479 100644
--- a/ext/self-keymaster/rest-api/src/main/java/org/apache/syncope/ext/self/keymaster/api/service/DomainService.java
+++ b/ext/self-keymaster/rest-api/src/main/java/org/apache/syncope/ext/self/keymaster/api/service/DomainService.java
@@ -67,8 +67,8 @@ public interface DomainService extends Serializable {
@Produces({ MediaType.APPLICATION_JSON })
Response adjustPoolSize(
@NotNull @PathParam("key") String key,
- @QueryParam("maxPoolSize") int maxPoolSize,
- @QueryParam("minIdle") int minIdle);
+ @QueryParam("poolMaxActive") int poolMaxActive,
+ @QueryParam("poolMinIdle") int poolMinIdle);
@DELETE
@Path("{key}")
diff --git a/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/service/DomainServiceImpl.java b/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/service/DomainServiceImpl.java
index a181c20..2440922 100644
--- a/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/service/DomainServiceImpl.java
+++ b/ext/self-keymaster/rest-cxf/src/main/java/org/apache/syncope/ext/self/keymaster/cxf/service/DomainServiceImpl.java
@@ -70,8 +70,8 @@ public class DomainServiceImpl implements DomainService {
}
@Override
- public Response adjustPoolSize(final String key, final int maxPoolSize, final int minIdle) {
- logic.adjustPoolSize(key, maxPoolSize, minIdle);
+ public Response adjustPoolSize(final String key, final int poolMaxActive, final int poolMinIdle) {
+ logic.adjustPoolSize(key, poolMaxActive, poolMinIdle);
return Response.noContent().build();
}
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
index ef7f3aa..c0fa456 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
@@ -34,7 +34,7 @@ public class ParametersITCase extends AbstractConsoleITCase {
@BeforeEach
public void login() {
doLogin(ADMIN_UNAME, ADMIN_PWD);
- TESTER.clickLink("body:configurationLI:configurationUL:parametersLI:parameters");
+ TESTER.clickLink("body:keymasterLI:keymasterUL:parametersLI:parameters");
TESTER.assertRenderedPage(Parameters.class);
}
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java
index caf836d..a07760e 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java
@@ -237,8 +237,8 @@ public class KeymasterITCase extends AbstractITCase {
Domain domain = domainOps.read(key);
assertEquals(Domain.TransactionIsolation.TRANSACTION_READ_UNCOMMITTED, domain.getTransactionIsolation());
assertEquals(CipherAlgorithm.BCRYPT, domain.getAdminCipherAlgorithm());
- assertEquals(10, domain.getMaxPoolSize());
- assertEquals(2, domain.getMinIdle());
+ assertEquals(10, domain.getPoolMaxActive());
+ assertEquals(2, domain.getPoolMinIdle());
assertEquals(domain, domainOps.read(key));
@@ -246,8 +246,8 @@ public class KeymasterITCase extends AbstractITCase {
domainOps.adjustPoolSize(key, 100, 23);
domain = domainOps.read(key);
- assertEquals(100, domain.getMaxPoolSize());
- assertEquals(23, domain.getMinIdle());
+ assertEquals(100, domain.getPoolMaxActive());
+ assertEquals(23, domain.getPoolMinIdle());
// 3. work with new domain - create user
clientFactory = new SyncopeClientFactoryBean().setAddress(ADDRESS).setDomain(key);
@@ -294,6 +294,13 @@ public class KeymasterITCase extends AbstractITCase {
}
@Test
+ public void domainCreateDuplicateKey() {
+ assertThrows(KeymasterException.class, () -> {
+ domainOps.create(new Domain.Builder("Two").build());
+ });
+ }
+
+ @Test
public void domainUpdateAdminPassword() throws Exception {
assumeFalse(domainOps.list().isEmpty());