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 2020/04/10 08:28:10 UTC
[syncope] 08/08: [SYNCOPE-160] Adding missing support for
AuthModule items
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 f7e75bbe77d44d1c0a6b2aaa83001d920c757ffc
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Apr 10 09:18:41 2020 +0200
[SYNCOPE-160] Adding missing support for AuthModule items
---
.../commons/IdMImplementationInfoProvider.java | 8 +-
.../resources/ItemTransformersTogglePanel.java | 4 +-
.../commons/IdRepoImplementationInfoProvider.java | 4 +
.../apache/syncope/common/lib/to/AuthModuleTO.java | 26 ++---
.../common/lib/types/AMImplementationType.java | 15 ++-
.../common/rest/api/service/AuthModuleService.java | 12 +--
.../common/lib/types/IdMImplementationType.java | 13 +--
.../common/lib/types/IdRepoImplementationType.java | 5 +-
.../init/ClassPathScanImplementationLookup.java | 4 +-
.../syncope/core/logic/ImplementationLogic.java | 2 +-
.../init/ClassPathScanImplementationLookup.java | 2 +-
.../persistence/api/entity/auth/AuthModule.java | 14 +--
.../api/entity/auth/AuthModuleItem.java | 3 +
.../src/test/resources/domains/MasterContent.xml | 8 +-
.../persistence/jpa/dao/auth/JPAAuthModuleDAO.java | 16 ++--
.../persistence/jpa/entity/auth/JPAAuthModule.java | 18 ++--
.../jpa/entity/auth/JPAAuthModuleItem.java | 31 +++++-
.../jpa/entity/policy/JPAAccessPolicy.java | 2 +-
.../jpa/entity/policy/JPAAttrReleasePolicy.java | 2 +-
.../jpa/entity/policy/JPAAuthPolicy.java | 2 +-
.../jpa/entity/resource/JPAMappingItem.java | 4 +-
.../jpa/entity/resource/JPAOrgUnitItem.java | 4 +-
.../jpa/inner/AbstractClientAppTest.java | 6 +-
.../core/persistence/jpa/inner/AuthModuleTest.java | 44 ++++-----
.../persistence/jpa/inner/ImplementationTest.java | 4 +-
.../core/persistence/jpa/inner/PolicyTest.java | 6 +-
.../src/test/resources/domains/MasterContent.xml | 8 +-
.../java/data/AuthModuleDataBinderImpl.java | 99 +++++++++++++++----
.../java/data/ImplementationDataBinderImpl.java | 14 +--
.../jpa/entity/JPAOIDCProviderItem.java | 4 +-
.../java/data/OIDCProviderDataBinderImpl.java | 105 +++++++--------------
.../core/persistence/jpa/dao/JPASAML2IdPDAO.java | 1 -
.../persistence/jpa/entity/JPASAML2IdPItem.java | 4 +-
.../java/data/SAML2IdPDataBinderImpl.java | 104 +++++++-------------
.../fit/core/reference/ITImplementationLookup.java | 2 +-
.../apache/syncope/fit/core/AuthModuleITCase.java | 35 +++----
.../org/apache/syncope/fit/core/PolicyITCase.java | 24 ++---
.../syncope/fit/core/PropagationTaskITCase.java | 10 +-
.../apache/syncope/fit/core/PullTaskITCase.java | 5 +-
.../org/apache/syncope/fit/core/RealmITCase.java | 6 +-
.../view/ResourceExplorerTopComponent.java | 2 +-
41 files changed, 332 insertions(+), 350 deletions(-)
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
index 174c813..3a7196e 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
@@ -71,10 +71,6 @@ public class IdMImplementationInfoProvider extends IdRepoImplementationInfoProvi
String templateClassName;
switch (implementationType) {
- case IdMImplementationType.ITEM_TRANSFORMER:
- templateClassName = "MyItemTransformer";
- break;
-
case IdMImplementationType.RECON_FILTER_BUILDER:
templateClassName = "MyReconFilterBuilder";
break;
@@ -100,9 +96,9 @@ public class IdMImplementationInfoProvider extends IdRepoImplementationInfoProvi
break;
case IdMImplementationType.PROVISION_SORTER:
- templateClassName = "MyProvisionSorter";
+ templateClassName = "MyProvisionSorter";
break;
-
+
default:
templateClassName = super.getGroovyTemplateClassName(implementationType);
}
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ItemTransformersTogglePanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ItemTransformersTogglePanel.java
index 912174d..bf77409 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ItemTransformersTogglePanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ItemTransformersTogglePanel.java
@@ -28,7 +28,7 @@ import org.apache.syncope.client.ui.commons.Constants;
import org.apache.syncope.client.ui.commons.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.common.lib.to.EntityTO;
import org.apache.syncope.common.lib.to.ItemTO;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
@@ -64,7 +64,7 @@ public class ItemTransformersTogglePanel extends TogglePanel<Serializable> {
Form<?> form = new Form<>("form");
addInnerObject(form);
- List<String> choices = ImplementationRestClient.list(IdMImplementationType.ITEM_TRANSFORMER).stream().
+ List<String> choices = ImplementationRestClient.list(IdRepoImplementationType.ITEM_TRANSFORMER).stream().
map(EntityTO::getKey).sorted().collect(Collectors.toList());
form.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).setRenderer(new IChoiceRenderer<String>() {
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
index ea08367..6b4d2f1 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
@@ -114,6 +114,10 @@ public class IdRepoImplementationInfoProvider implements ImplementationInfoProvi
templateClassName = "MyRecipientsProvider";
break;
+ case IdRepoImplementationType.ITEM_TRANSFORMER:
+ templateClassName = "MyItemTransformer";
+ break;
+
default:
}
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthModuleTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthModuleTO.java
index 492227f..3f499bd 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthModuleTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthModuleTO.java
@@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
+import javax.ws.rs.PathParam;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import org.apache.commons.lang3.builder.EqualsBuilder;
@@ -43,15 +44,16 @@ public class AuthModuleTO extends BaseBean implements EntityTO {
private String description;
- private final List<ItemTO> profileItems = new ArrayList<>();
-
private AuthModuleConf conf;
+ private final List<ItemTO> items = new ArrayList<>();
+
@Override
public String getKey() {
return key;
}
+ @PathParam("key")
@Override
public void setKey(final String key) {
this.key = key;
@@ -81,20 +83,19 @@ public class AuthModuleTO extends BaseBean implements EntityTO {
this.conf = conf;
}
- @XmlElementWrapper(name = "profileItems")
- @XmlElement(name = "profileItem")
- @JsonProperty("profileItems")
- public List<ItemTO> getProfileItems() {
- return profileItems;
+ @XmlElementWrapper(name = "items")
+ @XmlElement(name = "item")
+ @JsonProperty("items")
+ public List<ItemTO> getItems() {
+ return items;
}
public boolean add(final ItemTO item) {
- return Optional.ofNullable(item)
- .filter(itemTO -> this.profileItems.contains(itemTO) || this.profileItems.add(itemTO)).isPresent();
+ return Optional.ofNullable(item).filter(itemTO -> items.contains(itemTO) || items.add(itemTO)).isPresent();
}
public boolean remove(final ItemTO item) {
- return this.profileItems.remove(item);
+ return this.items.remove(item);
}
@Override
@@ -113,7 +114,7 @@ public class AuthModuleTO extends BaseBean implements EntityTO {
append(key, other.key).
append(name, other.name).
append(description, other.description).
- append(profileItems, other.profileItems).
+ append(items, other.items).
append(conf, other.conf).
build();
}
@@ -124,9 +125,8 @@ public class AuthModuleTO extends BaseBean implements EntityTO {
append(key).
append(name).
append(description).
- append(profileItems).
+ append(items).
append(conf).
build();
}
-
}
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/AMImplementationType.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/AMImplementationType.java
index 1c05727..1a6a7a0 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/AMImplementationType.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/types/AMImplementationType.java
@@ -23,23 +23,20 @@ import java.util.Map;
public final class AMImplementationType {
- public static final String AUTH_POLICY_CONFIGURATIONS = "AUTH_POLICY_CONFIGURATIONS";
+ public static final String AUTH_POLICY_CONF = "AUTH_POLICY_CONF";
- public static final String ACCESS_POLICY_CONFIGURATIONS = "ACCESS_POLICY_CONFIGURATIONS";
+ public static final String ACCESS_POLICY_CONF = "ACCESS_POLICY_CONF";
- public static final String ATTR_RELEASE_POLICY_CONFIGURATIONS = "ATTR_RELEASE_CONFIGURATIONS";
+ public static final String ATTR_RELEASE_POLICY_CONF = "ATTR_RELEASE_POLICY_CONF";
private AMImplementationType() {
// private constructor for static utility class
}
private static final Map<String, String> VALUES = Map.ofEntries(
- Pair.of(AUTH_POLICY_CONFIGURATIONS,
- "org.apache.syncope.common.lib.policy.AuthPolicyConf"),
- Pair.of(ATTR_RELEASE_POLICY_CONFIGURATIONS,
- "org.apache.syncope.common.lib.policy.AttrReleasePolicyConf"),
- Pair.of(ACCESS_POLICY_CONFIGURATIONS,
- "org.apache.syncope.common.lib.policy.AccessPolicyConf"));
+ Pair.of(AUTH_POLICY_CONF, "org.apache.syncope.common.lib.policy.AuthPolicyConf"),
+ Pair.of(ACCESS_POLICY_CONF, "org.apache.syncope.common.lib.policy.AccessPolicyConf"),
+ Pair.of(ATTR_RELEASE_POLICY_CONF, "org.apache.syncope.common.lib.policy.AttrReleasePolicyConf"));
public static Map<String, String> values() {
return VALUES;
diff --git a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AuthModuleService.java b/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AuthModuleService.java
index 83e6015..d617b42 100644
--- a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AuthModuleService.java
+++ b/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AuthModuleService.java
@@ -62,8 +62,7 @@ public interface AuthModuleService extends JAXRSService {
@GET
@Path("{key}")
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- AuthModuleTO read(
- @NotNull @PathParam("key") String key);
+ AuthModuleTO read(@NotNull @PathParam("key") String key);
/**
* Returns a list of authentication modules of the matching type.
@@ -92,8 +91,7 @@ public interface AuthModuleService extends JAXRSService {
@POST
@Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- Response create(
- @NotNull AuthModuleTO authModuleTO);
+ Response create(@NotNull AuthModuleTO authModuleTO);
/**
* Updates authentication module matching the given key.
@@ -108,8 +106,7 @@ public interface AuthModuleService extends JAXRSService {
@Path("{key}")
@Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- void update(
- @NotNull AuthModuleTO authModuleTO);
+ void update(@NotNull AuthModuleTO authModuleTO);
/**
* Delete authentication module matching the given key.
@@ -121,6 +118,5 @@ public interface AuthModuleService extends JAXRSService {
@DELETE
@Path("{key}")
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- void delete(
- @NotNull @PathParam("key") String key);
+ void delete(@NotNull @PathParam("key") String key);
}
diff --git a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/types/IdMImplementationType.java b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/types/IdMImplementationType.java
index a3aff0a..37765b2 100644
--- a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/types/IdMImplementationType.java
+++ b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/types/IdMImplementationType.java
@@ -23,8 +23,6 @@ import org.apache.commons.lang3.tuple.Pair;
public final class IdMImplementationType {
- public static final String ITEM_TRANSFORMER = "ITEM_TRANSFORMER";
-
public static final String RECON_FILTER_BUILDER = "RECON_FILTER_BUILDER";
public static final String PROPAGATION_ACTIONS = "PROPAGATION_ACTIONS";
@@ -40,13 +38,12 @@ public final class IdMImplementationType {
public static final String PROVISION_SORTER = "PROVISION_SORTER";
private static final Map<String, String> VALUES = Map.ofEntries(
- Pair.of(ITEM_TRANSFORMER, "org.apache.syncope.core.spring.security.JWTSSOProvider"),
Pair.of(RECON_FILTER_BUILDER, "org.apache.syncope.core.persistence.api.dao.Reportlet"),
- Pair.of(PROPAGATION_ACTIONS, "org.apache.syncope.core.persistence.api.dao.AccountRule"),
- Pair.of(PULL_ACTIONS, "org.apache.syncope.core.persistence.api.dao.PasswordRule"),
- Pair.of(PUSH_ACTIONS, "org.apache.syncope.core.provisioning.api.job.SchedTaskJobDelegate"),
- Pair.of(PULL_CORRELATION_RULE, "org.apache.syncope.core.provisioning.api.LogicActions"),
- Pair.of(PUSH_CORRELATION_RULE, "org.apache.syncope.core.persistence.api.attrvalue.validation.Validator"),
+ Pair.of(PROPAGATION_ACTIONS, "org.apache.syncope.core.provisioning.api.propagation.PropagationActions"),
+ Pair.of(PULL_ACTIONS, "org.apache.syncope.core.provisioning.api.pushpull.PullActions"),
+ Pair.of(PUSH_ACTIONS, "org.apache.syncope.core.provisioning.api.pushpull.PushActions"),
+ Pair.of(PULL_CORRELATION_RULE, "org.apache.syncope.common.lib.policy.PullCorrelationRuleConf"),
+ Pair.of(PUSH_CORRELATION_RULE, "org.apache.syncope.common.lib.policy.PushCorrelationRuleConf"),
Pair.of(PROVISION_SORTER, "org.apache.syncope.core.provisioning.api.ProvisionSorter"));
public static Map<String, String> values() {
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoImplementationType.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoImplementationType.java
index 013cb06..eb374be 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoImplementationType.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/IdRepoImplementationType.java
@@ -41,6 +41,8 @@ public final class IdRepoImplementationType {
public static final String AUDIT_APPENDER = "AUDIT_APPENDER";
+ public static final String ITEM_TRANSFORMER = "ITEM_TRANSFORMER";
+
private static final Map<String, String> VALUES = Map.ofEntries(
Pair.of(JWT_SSO_PROVIDER, "org.apache.syncope.core.spring.security.JWTSSOProvider"),
Pair.of(REPORTLET, "org.apache.syncope.core.persistence.api.dao.Reportlet"),
@@ -50,7 +52,8 @@ public final class IdRepoImplementationType {
Pair.of(LOGIC_ACTIONS, "org.apache.syncope.core.provisioning.api.LogicActions"),
Pair.of(VALIDATOR, "org.apache.syncope.core.persistence.api.attrvalue.validation.Validator"),
Pair.of(RECIPIENTS_PROVIDER, "org.apache.syncope.core.provisioning.api.notification.RecipientsProvider"),
- Pair.of(AUDIT_APPENDER, "org.apache.syncope.core.logic.audit.AuditAppender"));
+ Pair.of(AUDIT_APPENDER, "org.apache.syncope.core.logic.audit.AuditAppender"),
+ Pair.of(ITEM_TRANSFORMER, "org.apache.syncope.core.provisioning.api.data.ItemTransformer"));
public static Map<String, String> values() {
return VALUES;
diff --git a/core/am/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java b/core/am/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
index e887aef..04f4463 100644
--- a/core/am/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
+++ b/core/am/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
@@ -92,10 +92,10 @@ public class ClassPathScanImplementationLookup implements SyncopeCoreLoader {
boolean isAbstractClazz = Modifier.isAbstract(clazz.getModifiers());
if (AuthPolicyConf.class.isAssignableFrom(clazz) && !isAbstractClazz) {
- classNames.get(AMImplementationType.AUTH_POLICY_CONFIGURATIONS).add(bd.getBeanClassName());
+ classNames.get(AMImplementationType.AUTH_POLICY_CONF).add(bd.getBeanClassName());
}
if (AccessPolicyConf.class.isAssignableFrom(clazz) && !isAbstractClazz) {
- classNames.get(AMImplementationType.ACCESS_POLICY_CONFIGURATIONS).add(bd.getBeanClassName());
+ classNames.get(AMImplementationType.ACCESS_POLICY_CONF).add(bd.getBeanClassName());
}
} catch (Throwable t) {
LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t);
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java
index 40380cd..a2fd3d9 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ImplementationLogic.java
@@ -179,7 +179,7 @@ public class ImplementationLogic extends AbstractTransactionalLogic<Implementati
inUse = !policyDAO.findByPasswordRule(implementation).isEmpty();
break;
- case IdMImplementationType.ITEM_TRANSFORMER:
+ case IdRepoImplementationType.ITEM_TRANSFORMER:
inUse = !resourceDAO.findByTransformer(implementation).isEmpty();
break;
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
index 5baf2e5..6b626db 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
@@ -194,7 +194,7 @@ public class ClassPathScanImplementationLookup implements ImplementationLookup {
if (ItemTransformer.class.isAssignableFrom(clazz) && !isAbstractClazz
&& !clazz.equals(JEXLItemTransformerImpl.class)) {
- classNames.get(IdMImplementationType.ITEM_TRANSFORMER).add(clazz.getName());
+ classNames.get(IdRepoImplementationType.ITEM_TRANSFORMER).add(clazz.getName());
}
if (SchedTaskJobDelegate.class.isAssignableFrom(clazz) && !isAbstractClazz
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModule.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModule.java
index 5d2393e..8ba362c 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModule.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModule.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.persistence.api.entity.auth;
import java.util.List;
import org.apache.syncope.common.lib.auth.AuthModuleConf;
import org.apache.syncope.core.persistence.api.entity.Entity;
-import org.apache.syncope.core.persistence.api.entity.resource.Item;
public interface AuthModule extends Entity {
@@ -33,16 +32,11 @@ public interface AuthModule extends Entity {
void setDescription(String description);
- /**
- * Specify the mapping items for the attributes fetched from the source.
- *
- * @return list of mapping items
- */
- List<? extends Item> getProfileItems();
-
- boolean add(Item profileItem);
-
AuthModuleConf getConf();
void setConf(AuthModuleConf description);
+
+ List<? extends AuthModuleItem> getItems();
+
+ boolean add(AuthModuleItem item);
}
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModuleItem.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModuleItem.java
index 9f249e4..2754b02 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModuleItem.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/auth/AuthModuleItem.java
@@ -22,4 +22,7 @@ import org.apache.syncope.core.persistence.api.entity.resource.Item;
public interface AuthModuleItem extends Item {
+ AuthModule getAuthModule();
+
+ void setAuthModule(AuthModule authModule);
}
diff --git a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
index 8e82492..d58f29a 100644
--- a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
@@ -45,22 +45,22 @@ under the License.
<PasswordPolicyRule policy_id="55e5de0b-c79c-4e66-adda-251b6fb8579a" implementation_id="DefaultPasswordRuleConf3"/>
<!-- authentication policies -->
- <Implementation id="MyDefaultAuthPolicyConf" type="AUTH_POLICY_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="MyDefaultAuthPolicyConf" type="AUTH_POLICY_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.DefaultAuthPolicyConf","authModules":["LdapAuthenticationTest"]}'/>
<AuthPolicy id="659b9906-4b6e-4bc0-aca0-6809dff346d4" name="MyDefaultAuthPolicyConf" description="an authentication policy"/>
<AuthPolicy id="b912a0d4-a890-416f-9ab8-84ab077eb028" name="DefaultAuthPolicy" description="Default authentication policy"/>
<!-- access policies -->
- <Implementation id="MyDefaultAccessPolicyConf" type="ACCESS_POLICY_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="MyDefaultAccessPolicyConf" type="ACCESS_POLICY_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.DefaultAccessPolicyConf","name":"MyDefaultAccessPolicyConf","enabled":true,"ssoEnabled":true}'/>
<AccessPolicy id="419935c7-deb3-40b3-8a9a-683037e523a2" name="MyDefaultAccessPolicyConf" description="an access policy"/>
<!-- Attr Release Policies -->
- <Implementation id="AllowedAttrReleasePolicyConf" type="ATTR_RELEASE_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="AllowedAttrReleasePolicyConf" type="ATTR_RELEASE_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.AllowedAttrReleasePolicyConf","name":"AllowedAttrReleasePolicy","allowedAttributes":["cn","givenName","uid"]}'/>
<AttrReleasePolicy id="319935c7-deb3-40b3-8a9a-683037e523a2" name="AllowedAttrReleasePolicy" description="allowed attribute release policy policy"/>
- <Implementation id="DenyAttrReleasePolicyConf" type="ATTR_RELEASE_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="DenyAttrReleasePolicyConf" type="ATTR_RELEASE_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.AllowedAttrReleasePolicyConf","name":"DenyAttrReleasePolicyConf"}'/>
<AttrReleasePolicy id="219935c7-deb3-40b3-8a9a-683037e523a2" name="DenyAttrReleasePolicy" description="deny attribute release policy policy"/>
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/auth/JPAAuthModuleDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/auth/JPAAuthModuleDAO.java
index dd765ad..8106222 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/auth/JPAAuthModuleDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/auth/JPAAuthModuleDAO.java
@@ -18,18 +18,19 @@
*/
package org.apache.syncope.core.persistence.jpa.dao.auth;
-import org.apache.syncope.core.persistence.jpa.dao.AbstractDAO;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-import javax.persistence.TypedQuery;
import java.util.List;
+import javax.persistence.TypedQuery;
import org.apache.syncope.core.persistence.api.dao.auth.AuthModuleDAO;
+import org.apache.syncope.core.persistence.jpa.dao.AbstractDAO;
import org.apache.syncope.core.persistence.api.entity.auth.AuthModule;
import org.apache.syncope.core.persistence.jpa.entity.auth.JPAAuthModule;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
@Repository
public class JPAAuthModuleDAO extends AbstractDAO<AuthModule> implements AuthModuleDAO {
+ @Transactional(readOnly = true)
@Override
public AuthModule find(final String key) {
return entityManager().find(JPAAuthModule.class, key);
@@ -38,13 +39,11 @@ public class JPAAuthModuleDAO extends AbstractDAO<AuthModule> implements AuthMod
@Transactional(readOnly = true)
@Override
public List<AuthModule> findAll() {
- TypedQuery<AuthModule> query = entityManager().createQuery("SELECT e FROM " + JPAAuthModule.class.
- getSimpleName() + " e", AuthModule.class);
-
+ TypedQuery<AuthModule> query = entityManager().createQuery(
+ "SELECT e FROM " + JPAAuthModule.class.getSimpleName() + " e", AuthModule.class);
return query.getResultList();
}
- @Transactional(readOnly = true)
@Override
public AuthModule save(final AuthModule authModule) {
return entityManager().merge(authModule);
@@ -64,5 +63,4 @@ public class JPAAuthModuleDAO extends AbstractDAO<AuthModule> implements AuthMod
public void delete(final AuthModule authModule) {
entityManager().remove(authModule);
}
-
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModule.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModule.java
index e2b6586..cbbb96b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModule.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModule.java
@@ -30,7 +30,7 @@ import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.auth.AuthModuleConf;
import org.apache.syncope.core.persistence.api.entity.auth.AuthModule;
-import org.apache.syncope.core.persistence.api.entity.resource.Item;
+import org.apache.syncope.core.persistence.api.entity.auth.AuthModuleItem;
import org.apache.syncope.core.persistence.jpa.entity.AbstractGeneratedKeyEntity;
import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
@@ -48,8 +48,8 @@ public class JPAAuthModule extends AbstractGeneratedKeyEntity implements AuthMod
@Column(nullable = false)
private String description;
- @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "mapping")
- private final List<JPAAuthModuleItem> profileItems = new ArrayList<>();
+ @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "authModule")
+ private List<JPAAuthModuleItem> items = new ArrayList<>();
@Lob
private String jsonConf;
@@ -75,15 +75,14 @@ public class JPAAuthModule extends AbstractGeneratedKeyEntity implements AuthMod
}
@Override
- public List<? extends Item> getProfileItems() {
- return profileItems;
+ public List<? extends AuthModuleItem> getItems() {
+ return items;
}
@Override
- public boolean add(final Item profileItem) {
- checkType(profileItem, JPAAuthModuleItem.class);
- return profileItems.contains((JPAAuthModuleItem) profileItem)
- || profileItems.add((JPAAuthModuleItem) profileItem);
+ public boolean add(final AuthModuleItem item) {
+ checkType(item, JPAAuthModuleItem.class);
+ return items.contains((JPAAuthModuleItem) item) || items.add((JPAAuthModuleItem) item);
}
@Override
@@ -100,5 +99,4 @@ public class JPAAuthModule extends AbstractGeneratedKeyEntity implements AuthMod
public void setConf(final AuthModuleConf conf) {
jsonConf = POJOHelper.serialize(conf);
}
-
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModuleItem.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModuleItem.java
index bc92d49..c851289 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModuleItem.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthModuleItem.java
@@ -26,10 +26,13 @@ import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
+import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
+import org.apache.syncope.common.lib.types.MappingPurpose;
import org.apache.syncope.core.persistence.api.entity.Implementation;
+import org.apache.syncope.core.persistence.api.entity.auth.AuthModule;
import org.apache.syncope.core.persistence.api.entity.auth.AuthModuleItem;
import org.apache.syncope.core.persistence.jpa.entity.JPAImplementation;
import org.apache.syncope.core.persistence.jpa.entity.resource.AbstractItem;
@@ -43,6 +46,9 @@ public class JPAAuthModuleItem extends AbstractItem implements AuthModuleItem {
private static final long serialVersionUID = 3165440920144995781L;
+ @ManyToOne
+ private JPAAuthModule authModule;
+
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = TABLE + "Transformer",
joinColumns =
@@ -53,10 +59,30 @@ public class JPAAuthModuleItem extends AbstractItem implements AuthModuleItem {
@UniqueConstraint(columnNames = { "item_id", "implementation_id" }))
private final List<JPAImplementation> transformers = new ArrayList<>();
+ public JPAAuthModuleItem() {
+ super.setPurpose(MappingPurpose.NONE);
+ }
+
+ @Override
+ public void setPurpose(final MappingPurpose purpose) {
+ // cannot be changed
+ }
+
+ @Override
+ public AuthModule getAuthModule() {
+ return authModule;
+ }
+
+ @Override
+ public void setAuthModule(final AuthModule authModule) {
+ checkType(authModule, JPAAuthModule.class);
+ this.authModule = (JPAAuthModule) authModule;
+ }
+
@Override
public boolean add(final Implementation transformer) {
checkType(transformer, JPAImplementation.class);
- checkImplementationType(transformer, IdMImplementationType.ITEM_TRANSFORMER);
+ checkImplementationType(transformer, IdRepoImplementationType.ITEM_TRANSFORMER);
return transformers.contains((JPAImplementation) transformer)
|| this.transformers.add((JPAImplementation) transformer);
}
@@ -65,5 +91,4 @@ public class JPAAuthModuleItem extends AbstractItem implements AuthModuleItem {
public List<? extends Implementation> getTransformers() {
return transformers;
}
-
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccessPolicy.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccessPolicy.java
index 261c176..b5843a9 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccessPolicy.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAccessPolicy.java
@@ -61,7 +61,7 @@ public class JPAAccessPolicy extends AbstractPolicy implements AccessPolicy {
@Override
public void setConfiguration(final Implementation configuration) {
checkType(configuration, JPAImplementation.class);
- checkImplementationType(configuration, AMImplementationType.ACCESS_POLICY_CONFIGURATIONS);
+ checkImplementationType(configuration, AMImplementationType.ACCESS_POLICY_CONF);
this.configuration = (JPAImplementation) configuration;
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAttrReleasePolicy.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAttrReleasePolicy.java
index 6a21edc..d6d0ba3 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAttrReleasePolicy.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAttrReleasePolicy.java
@@ -62,7 +62,7 @@ public class JPAAttrReleasePolicy extends AbstractPolicy implements AttrReleaseP
@Override
public void setConfiguration(final Implementation configuration) {
checkType(configuration, JPAImplementation.class);
- checkImplementationType(configuration, AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS);
+ checkImplementationType(configuration, AMImplementationType.ATTR_RELEASE_POLICY_CONF);
this.configuration = (JPAImplementation) configuration;
}
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAuthPolicy.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAuthPolicy.java
index b367152..59263c2 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAuthPolicy.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAAuthPolicy.java
@@ -61,7 +61,7 @@ public class JPAAuthPolicy extends AbstractPolicy implements AuthPolicy {
@Override
public void setConfiguration(final Implementation configuration) {
checkType(configuration, JPAImplementation.class);
- checkImplementationType(configuration, AMImplementationType.AUTH_POLICY_CONFIGURATIONS);
+ checkImplementationType(configuration, AMImplementationType.AUTH_POLICY_CONF);
this.configuration = (JPAImplementation) configuration;
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMappingItem.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMappingItem.java
index e81450f..a197e11 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMappingItem.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAMappingItem.java
@@ -28,8 +28,8 @@ import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
import javax.persistence.UniqueConstraint;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
import org.apache.syncope.core.persistence.api.entity.Implementation;
import org.apache.syncope.core.persistence.api.entity.resource.Mapping;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
@@ -71,7 +71,7 @@ public class JPAMappingItem extends AbstractItem implements MappingItem {
@Override
public boolean add(final Implementation transformer) {
checkType(transformer, JPAImplementation.class);
- checkImplementationType(transformer, IdMImplementationType.ITEM_TRANSFORMER);
+ checkImplementationType(transformer, IdRepoImplementationType.ITEM_TRANSFORMER);
return transformers.contains((JPAImplementation) transformer)
|| transformers.add((JPAImplementation) transformer);
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnitItem.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnitItem.java
index 90423b4..1882a13 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnitItem.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAOrgUnitItem.java
@@ -28,8 +28,8 @@ import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
import javax.persistence.UniqueConstraint;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
import org.apache.syncope.core.persistence.api.entity.Implementation;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnitItem;
@@ -76,7 +76,7 @@ public class JPAOrgUnitItem extends AbstractItem implements OrgUnitItem {
@Override
public boolean add(final Implementation transformer) {
checkType(transformer, JPAImplementation.class);
- checkImplementationType(transformer, IdMImplementationType.ITEM_TRANSFORMER);
+ checkImplementationType(transformer, IdRepoImplementationType.ITEM_TRANSFORMER);
return transformers.contains((JPAImplementation) transformer)
|| transformers.add((JPAImplementation) transformer);
}
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AbstractClientAppTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AbstractClientAppTest.java
index d2eea8f..c4ea282 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AbstractClientAppTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AbstractClientAppTest.java
@@ -56,7 +56,7 @@ public class AbstractClientAppTest extends AbstractTest {
Implementation type = entityFactory.newEntity(Implementation.class);
type.setKey("AttrRelPolicyTest");
type.setEngine(ImplementationEngine.JAVA);
- type.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS);
+ type.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONF);
type.setBody(POJOHelper.serialize(conf));
type = implementationDAO.save(type);
attrRelPolicy.setConfiguration(type);
@@ -78,7 +78,7 @@ public class AbstractClientAppTest extends AbstractTest {
Implementation type = entityFactory.newEntity(Implementation.class);
type.setKey("AccessPolicyConfKey");
type.setEngine(ImplementationEngine.JAVA);
- type.setType(AMImplementationType.ACCESS_POLICY_CONFIGURATIONS);
+ type.setType(AMImplementationType.ACCESS_POLICY_CONF);
type.setBody(POJOHelper.serialize(conf));
type = implementationDAO.save(type);
@@ -98,7 +98,7 @@ public class AbstractClientAppTest extends AbstractTest {
Implementation type = entityFactory.newEntity(Implementation.class);
type.setKey("AuthPolicyConfKey");
type.setEngine(ImplementationEngine.JAVA);
- type.setType(AMImplementationType.AUTH_POLICY_CONFIGURATIONS);
+ type.setType(AMImplementationType.AUTH_POLICY_CONF);
type.setBody(POJOHelper.serialize(conf));
type = implementationDAO.save(type);
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java
index 27c0d22..8bd2c13 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java
@@ -303,6 +303,7 @@ public class AuthModuleTest extends AbstractTest {
module = authModuleDAO.save(module);
assertNotNull(module);
assertNotNull(module.getKey());
+
AuthModule found = authModuleDAO.find(module.getKey());
assertNotNull(found);
assertEquals("dc=example2,dc=org", LDAPAuthModuleConf.class.cast(found.getConf()).getBaseDn());
@@ -322,8 +323,7 @@ public class AuthModuleTest extends AbstractTest {
assertNotNull(module.getKey());
AuthModule found = authModuleDAO.find(module.getKey());
assertNotNull(found);
- assertEquals("SELECT * FROM otherTable WHERE name=?",
- JDBCAuthModuleConf.class.cast(found.getConf()).getSql());
+ assertEquals("SELECT * FROM otherTable WHERE name=?", JDBCAuthModuleConf.class.cast(found.getConf()).getSql());
}
@Test
@@ -443,6 +443,7 @@ public class AuthModuleTest extends AbstractTest {
public void updateWithSyncopeModule() {
AuthModule module = authModuleDAO.find("4c3edd60-7008-11ea-bc55-0242ac130003");
assertNotNull(module);
+
AuthModuleConf conf = module.getConf();
SyncopeAuthModuleConf.class.cast(conf).setDomain("Two");
module.setConf(conf);
@@ -457,16 +458,13 @@ public class AuthModuleTest extends AbstractTest {
@Test
public void delete() {
- testDelete("be456831-593d-4003-b273-4c3fb61700df");
- testDelete("4c3ed8f6-7008-11ea-bc55-0242ac130003");
- testDelete("4c3edbbc-7008-11ea-bc55-0242ac130003");
- testDelete("4c3ed7e8-7008-11ea-bc55-0242ac130003");
- testDelete("4c3ed4e6-7008-11ea-bc55-0242ac130003");
- testDelete("4c3edc98-7008-11ea-bc55-0242ac130003");
- testDelete("4c3ed9d2-7008-11ea-bc55-0242ac130003");
- testDelete("4c3edd60-7008-11ea-bc55-0242ac130003");
- testDelete("07c528f3-63b4-4dc1-a4da-87f35b8bdec8");
- testDelete("f6e1288d-50d9-45fe-82ee-597c42242205");
+ AuthModule authModule = authModuleDAO.find("be456831-593d-4003-b273-4c3fb61700df");
+ assertNotNull(authModule);
+
+ authModuleDAO.delete("be456831-593d-4003-b273-4c3fb61700df");
+
+ authModule = authModuleDAO.find("be456831-593d-4003-b273-4c3fb61700df");
+ assertNull(authModule);
}
private void saveAuthModule(final String name, final AuthModuleConf conf) {
@@ -474,29 +472,27 @@ public class AuthModuleTest extends AbstractTest {
module.setName(name);
module.setDescription("An authentication module");
module.setConf(conf);
+
AuthModuleItem keyMapping = entityFactory.newEntity(AuthModuleItem.class);
keyMapping.setIntAttrName("uid");
keyMapping.setExtAttrName("username");
+ keyMapping.setAuthModule(module);
+ module.add(keyMapping);
+
AuthModuleItem fullnameMapping = entityFactory.newEntity(AuthModuleItem.class);
fullnameMapping.setIntAttrName("cn");
fullnameMapping.setExtAttrName("fullname");
- module.add(keyMapping);
+ fullnameMapping.setAuthModule(module);
module.add(fullnameMapping);
- authModuleDAO.save(module);
+
+ module = authModuleDAO.save(module);
assertNotNull(module);
assertNotNull(module.getKey());
- assertNotNull(authModuleDAO.find(module.getKey()));
- }
-
- private void testDelete(final String key) {
- AuthModule authModule = authModuleDAO.find(key);
- assertNotNull(authModule);
- authModuleDAO.delete(key);
- authModule = authModuleDAO.find(key);
- assertNull(authModule);
+ assertEquals(module, authModuleDAO.find(module.getKey()));
+ assertEquals(2, module.getItems().size());
}
- private boolean isSpecificConf(final AuthModuleConf conf, final Class<? extends AuthModuleConf> clazz) {
+ private static boolean isSpecificConf(final AuthModuleConf conf, final Class<? extends AuthModuleConf> clazz) {
return ClassUtils.isAssignable(clazz, conf.getClass());
}
}
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java
index f34a7e7..bf6ff38 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ImplementationTest.java
@@ -74,10 +74,10 @@ public class ImplementationTest extends AbstractTest {
implementations = implementationDAO.findByType(IdMImplementationType.PUSH_CORRELATION_RULE);
assertEquals(1, implementations.size());
- implementations = implementationDAO.findByType(AMImplementationType.AUTH_POLICY_CONFIGURATIONS);
+ implementations = implementationDAO.findByType(AMImplementationType.AUTH_POLICY_CONF);
assertEquals(1, implementations.size());
- implementations = implementationDAO.findByType(AMImplementationType.ACCESS_POLICY_CONFIGURATIONS);
+ implementations = implementationDAO.findByType(AMImplementationType.ACCESS_POLICY_CONF);
assertEquals(1, implementations.size());
}
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java
index 3e7cdaf..1ebc7c3 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java
@@ -213,7 +213,7 @@ public class PolicyTest extends AbstractTest {
Implementation type = entityFactory.newEntity(Implementation.class);
type.setKey("AttrReleasePolicyAllowEverything");
type.setEngine(ImplementationEngine.JAVA);
- type.setType(AMImplementationType.ACCESS_POLICY_CONFIGURATIONS);
+ type.setType(AMImplementationType.ACCESS_POLICY_CONF);
type.setBody(POJOHelper.serialize(conf));
type = implementationDAO.save(type);
@@ -240,7 +240,7 @@ public class PolicyTest extends AbstractTest {
Implementation authPolicyType = entityFactory.newEntity(Implementation.class);
authPolicyType.setKey("AuthPolicyConfKey");
authPolicyType.setEngine(ImplementationEngine.JAVA);
- authPolicyType.setType(AMImplementationType.AUTH_POLICY_CONFIGURATIONS);
+ authPolicyType.setType(AMImplementationType.AUTH_POLICY_CONF);
authPolicyType.setBody(POJOHelper.serialize(authPolicyConf));
authPolicyType = implementationDAO.save(authPolicyType);
@@ -265,7 +265,7 @@ public class PolicyTest extends AbstractTest {
Implementation attrReleasePolicyType = entityFactory.newEntity(Implementation.class);
attrReleasePolicyType.setKey("AttrReleasePolicyAllowEverything");
attrReleasePolicyType.setEngine(ImplementationEngine.JAVA);
- attrReleasePolicyType.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS);
+ attrReleasePolicyType.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONF);
attrReleasePolicyType.setBody(POJOHelper.serialize(attrReleasePolicyConf));
attrReleasePolicyType = implementationDAO.save(attrReleasePolicyType);
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index b484956..a222994 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -45,22 +45,22 @@ under the License.
<PasswordPolicyRule policy_id="55e5de0b-c79c-4e66-adda-251b6fb8579a" implementation_id="DefaultPasswordRuleConf3"/>
<!-- Authentication policies -->
- <Implementation id="MyDefaultAuthPolicyConf" type="AUTH_POLICY_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="MyDefaultAuthPolicyConf" type="AUTH_POLICY_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.DefaultAuthPolicyConf","authModules":["LdapAuthenticationTest"]}'/>
<AuthPolicy id="659b9906-4b6e-4bc0-aca0-6809dff346d4" name="MyDefaultAuthPolicyConf" description="an authentication policy"/>
<AuthPolicy id="b912a0d4-a890-416f-9ab8-84ab077eb028" name="DefaultAuthPolicy" description="Default authentication policy"/>
<!-- Access policies -->
- <Implementation id="MyDefaultAccessPolicyConf" type="ACCESS_POLICY_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="MyDefaultAccessPolicyConf" type="ACCESS_POLICY_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.DefaultAccessPolicyConf","name":"MyDefaultAccessPolicyConf","enabled":true,"ssoEnabled":true}'/>
<AccessPolicy id="419935c7-deb3-40b3-8a9a-683037e523a2" name="MyDefaultAccessPolicyConf" description="an access policy"/>
<!-- Attr Release Policies -->
- <Implementation id="AllowedAttrReleasePolicyConf" type="ATTR_RELEASE_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="AllowedAttrReleasePolicyConf" type="ATTR_RELEASE_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.AllowedAttrReleasePolicyConf","name":"AllowedAttrReleasePolicy","allowedAttributes":["cn","givenName","uid"]}'/>
<AttrReleasePolicy id="319935c7-deb3-40b3-8a9a-683037e523a2" name="AllowedAttrReleasePolicy" description="allowed attribute release policy policy"/>
- <Implementation id="DenyAttrReleasePolicyConf" type="ATTR_RELEASE_CONFIGURATIONS" engine="JAVA"
+ <Implementation id="DenyAttrReleasePolicyConf" type="ATTR_RELEASE_CONF" engine="JAVA"
body='{"@class":"org.apache.syncope.common.lib.policy.AllowedAttrReleasePolicyConf","name":"DenyAttrReleasePolicyConf"}'/>
<AttrReleasePolicy id="219935c7-deb3-40b3-8a9a-683037e523a2" name="DenyAttrReleasePolicy" description="deny attribute release policy policy"/>
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthModuleDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthModuleDataBinderImpl.java
index 0b0e38b..058e58d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthModuleDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthModuleDataBinderImpl.java
@@ -18,48 +18,108 @@
*/
package org.apache.syncope.core.provisioning.java.data;
+import org.apache.syncope.common.lib.SyncopeClientCompositeException;
+import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.apache.syncope.common.lib.to.AuthModuleTO;
+import org.apache.syncope.common.lib.to.ItemTO;
+import org.apache.syncope.common.lib.types.ClientExceptionType;
+import org.apache.syncope.common.lib.types.MappingPurpose;
import org.apache.syncope.core.persistence.api.entity.auth.AuthModule;
+import org.apache.syncope.core.persistence.api.entity.auth.AuthModuleItem;
import org.apache.syncope.core.provisioning.api.data.AuthModuleDataBinder;
+import org.apache.syncope.core.provisioning.api.jexl.JexlUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
@Component
public class AuthModuleDataBinderImpl implements AuthModuleDataBinder {
+ private static final Logger LOG = LoggerFactory.getLogger(AuthModuleDataBinder.class);
+
@Autowired
private EntityFactory entityFactory;
- private AuthModule getAuthModule(final AuthModule authModule, final AuthModuleTO authModuleTO) {
- AuthModule result = authModule;
+ private void populateItems(final AuthModuleTO authModuleTO, final AuthModule authModule) {
+ SyncopeClientCompositeException scce = SyncopeClientException.buildComposite();
+ SyncopeClientException invalidMapping =
+ SyncopeClientException.build(ClientExceptionType.InvalidMapping);
+ SyncopeClientException requiredValuesMissing =
+ SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing);
- if (result == null) {
- result = entityFactory.newEntity(AuthModule.class);
- }
+ authModuleTO.getItems().forEach(itemTO -> {
+ if (itemTO == null) {
+ LOG.error("Null {}", ItemTO.class.getSimpleName());
+ invalidMapping.getElements().add("Null " + ItemTO.class.getSimpleName());
+ } else if (itemTO.getIntAttrName() == null) {
+ requiredValuesMissing.getElements().add("intAttrName");
+ scce.addException(requiredValuesMissing);
+ } else {
+ // no mandatory condition implies mandatory condition false
+ if (!JexlUtils.isExpressionValid(itemTO.getMandatoryCondition() == null
+ ? "false" : itemTO.getMandatoryCondition())) {
- AuthModule authenticationModule = AuthModule.class.cast(result);
- AuthModuleTO authenticationModuleTO = AuthModuleTO.class.cast(authModuleTO);
+ SyncopeClientException invalidMandatoryCondition =
+ SyncopeClientException.build(ClientExceptionType.InvalidValues);
+ invalidMandatoryCondition.getElements().add(itemTO.getMandatoryCondition());
+ scce.addException(invalidMandatoryCondition);
+ }
- authenticationModule.setName(authenticationModuleTO.getName());
- authenticationModule.setConf(authenticationModuleTO.getConf());
- authenticationModule.setDescription(authenticationModuleTO.getDescription());
- // remove all profile items not contained in the TO
- authenticationModule.getProfileItems().
- removeIf(item -> !authenticationModuleTO.getProfileItems().stream().
- anyMatch(otherItem -> item.getKey().equals(otherItem.getKey())));
+ AuthModuleItem item = entityFactory.newEntity(AuthModuleItem.class);
+ item.setIntAttrName(itemTO.getIntAttrName());
+ item.setExtAttrName(itemTO.getExtAttrName());
+ item.setMandatoryCondition(itemTO.getMandatoryCondition());
+ item.setConnObjectKey(itemTO.isConnObjectKey());
+ item.setPassword(itemTO.isPassword());
+ item.setPropagationJEXLTransformer(itemTO.getPropagationJEXLTransformer());
+ item.setPullJEXLTransformer(itemTO.getPullJEXLTransformer());
+ item.setAuthModule(authModule);
+ authModule.add(item);
+ }
+ });
- return result;
+ if (!invalidMapping.getElements().isEmpty()) {
+ scce.addException(invalidMapping);
+ }
+ if (scce.hasExceptions()) {
+ throw scce;
+ }
}
@Override
public AuthModule create(final AuthModuleTO authModuleTO) {
- return getAuthModule(null, authModuleTO);
+ return update(entityFactory.newEntity(AuthModule.class), authModuleTO);
}
@Override
public AuthModule update(final AuthModule authModule, final AuthModuleTO authModuleTO) {
- return getAuthModule(authModule, authModuleTO);
+ authModule.setName(authModuleTO.getName());
+ authModule.setDescription(authModuleTO.getDescription());
+ authModule.setConf(authModuleTO.getConf());
+
+ authModule.getItems().clear();
+ populateItems(authModuleTO, authModule);
+
+ return authModule;
+ }
+
+ private static void populateItems(final AuthModule authModule, final AuthModuleTO authModuleTO) {
+ authModule.getItems().forEach(item -> {
+ ItemTO itemTO = new ItemTO();
+ itemTO.setKey(item.getKey());
+ itemTO.setIntAttrName(item.getIntAttrName());
+ itemTO.setExtAttrName(item.getExtAttrName());
+ itemTO.setMandatoryCondition(item.getMandatoryCondition());
+ itemTO.setConnObjectKey(item.isConnObjectKey());
+ itemTO.setPassword(item.isPassword());
+ itemTO.setPropagationJEXLTransformer(item.getPropagationJEXLTransformer());
+ itemTO.setPullJEXLTransformer(item.getPullJEXLTransformer());
+ itemTO.setPurpose(MappingPurpose.NONE);
+
+ authModuleTO.add(itemTO);
+ });
}
@Override
@@ -70,9 +130,8 @@ public class AuthModuleDataBinderImpl implements AuthModuleDataBinder {
authModuleTO.setKey(authModule.getKey());
authModuleTO.setDescription(authModule.getDescription());
authModuleTO.setConf(authModule.getConf());
- authModuleTO.getProfileItems().forEach(item -> {
- authModuleTO.add(item);
- });
+
+ populateItems(authModule, authModuleTO);
return authModuleTO;
}
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ImplementationDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ImplementationDataBinderImpl.java
index 9df9f8c..5de0f13 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ImplementationDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ImplementationDataBinderImpl.java
@@ -108,7 +108,7 @@ public class ImplementationDataBinderImpl implements ImplementationDataBinder {
base = PasswordRule.class;
break;
- case IdMImplementationType.ITEM_TRANSFORMER:
+ case IdRepoImplementationType.ITEM_TRANSFORMER:
base = ItemTransformer.class;
break;
@@ -156,15 +156,15 @@ public class ImplementationDataBinderImpl implements ImplementationDataBinder {
base = ProvisionSorter.class;
break;
- case AMImplementationType.ACCESS_POLICY_CONFIGURATIONS:
+ case AMImplementationType.ACCESS_POLICY_CONF:
base = AccessPolicy.class;
break;
- case AMImplementationType.AUTH_POLICY_CONFIGURATIONS:
+ case AMImplementationType.AUTH_POLICY_CONF:
base = AuthPolicy.class;
break;
- case AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS:
+ case AMImplementationType.ATTR_RELEASE_POLICY_CONF:
base = AttrReleasePolicy.class;
break;
default:
@@ -176,7 +176,7 @@ public class ImplementationDataBinderImpl implements ImplementationDataBinder {
}
switch (implementation.getType()) {
- case AMImplementationType.ACCESS_POLICY_CONFIGURATIONS:
+ case AMImplementationType.ACCESS_POLICY_CONF:
AccessPolicyConf accessPolicyConf =
POJOHelper.deserialize(implementation.getBody(), AccessPolicyConf.class);
if (accessPolicyConf == null) {
@@ -184,7 +184,7 @@ public class ImplementationDataBinderImpl implements ImplementationDataBinder {
throw sce;
}
break;
- case AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS:
+ case AMImplementationType.ATTR_RELEASE_POLICY_CONF:
AttrReleasePolicyConf policyConf =
POJOHelper.deserialize(implementation.getBody(), AttrReleasePolicyConf.class);
if (policyConf == null) {
@@ -192,7 +192,7 @@ public class ImplementationDataBinderImpl implements ImplementationDataBinder {
throw sce;
}
break;
- case AMImplementationType.AUTH_POLICY_CONFIGURATIONS:
+ case AMImplementationType.AUTH_POLICY_CONF:
AuthPolicyConf authPolicyConf =
POJOHelper.deserialize(implementation.getBody(), AuthPolicyConf.class);
if (authPolicyConf == null) {
diff --git a/ext/oidcclient/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAOIDCProviderItem.java b/ext/oidcclient/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAOIDCProviderItem.java
index f707620..f2afe3a 100644
--- a/ext/oidcclient/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAOIDCProviderItem.java
+++ b/ext/oidcclient/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAOIDCProviderItem.java
@@ -28,8 +28,8 @@ import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
import javax.persistence.UniqueConstraint;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
import org.apache.syncope.core.persistence.api.entity.Implementation;
import org.apache.syncope.core.persistence.api.entity.OIDCProvider;
import org.apache.syncope.core.persistence.api.entity.OIDCProviderItem;
@@ -71,7 +71,7 @@ public class JPAOIDCProviderItem extends AbstractItem implements OIDCProviderIte
@Override
public boolean add(final Implementation transformer) {
checkType(transformer, JPAImplementation.class);
- checkImplementationType(transformer, IdMImplementationType.ITEM_TRANSFORMER);
+ checkImplementationType(transformer, IdRepoImplementationType.ITEM_TRANSFORMER);
return transformers.contains((JPAImplementation) transformer)
|| this.transformers.add((JPAImplementation) transformer);
}
diff --git a/ext/oidcclient/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCProviderDataBinderImpl.java b/ext/oidcclient/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCProviderDataBinderImpl.java
index a206cf9..c978a97 100644
--- a/ext/oidcclient/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCProviderDataBinderImpl.java
+++ b/ext/oidcclient/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCProviderDataBinderImpl.java
@@ -22,7 +22,6 @@ import java.text.ParseException;
import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.ItemTO;
import org.apache.syncope.common.lib.to.OIDCProviderTO;
import org.apache.syncope.common.lib.to.UserTO;
@@ -71,21 +70,16 @@ public class OIDCProviderDataBinderImpl implements OIDCProviderDataBinder {
@Override
public OIDCProvider create(final OIDCProviderTO opTO) {
return update(entityFactory.newEntity(OIDCProvider.class), opTO);
-
}
- private void populateItems(
- final OIDCProviderTO opTO,
- final OIDCProvider op,
- final AnyTypeClassTO allowedSchemas) {
-
+ private void populateItems(final OIDCProviderTO opTO, final OIDCProvider op) {
SyncopeClientCompositeException scce = SyncopeClientException.buildComposite();
SyncopeClientException invalidMapping =
SyncopeClientException.build(ClientExceptionType.InvalidMapping);
SyncopeClientException requiredValuesMissing =
SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing);
- for (ItemTO itemTO : opTO.getItems()) {
+ opTO.getItems().forEach(itemTO -> {
if (itemTO == null) {
LOG.error("Null {}", ItemTO.class.getSimpleName());
invalidMapping.getElements().add("Null " + ItemTO.class.getSimpleName());
@@ -104,69 +98,43 @@ public class OIDCProviderDataBinderImpl implements OIDCProviderDataBinder {
LOG.error("'{}' not existing", itemTO.getIntAttrName());
invalidMapping.getElements().add('\'' + itemTO.getIntAttrName() + "' not existing");
} else {
- boolean allowed = true;
- if (intAttrName.getSchemaType() != null
- && intAttrName.getEnclosingGroup() == null
- && intAttrName.getRelatedAnyObject() == null) {
- switch (intAttrName.getSchemaType()) {
- case PLAIN:
- allowed = allowedSchemas.getPlainSchemas().contains(intAttrName.getSchema().getKey());
- break;
-
- case DERIVED:
- allowed = allowedSchemas.getDerSchemas().contains(intAttrName.getSchema().getKey());
- break;
-
- case VIRTUAL:
- allowed = allowedSchemas.getVirSchemas().contains(intAttrName.getSchema().getKey());
- break;
-
- default:
- }
+ // no mandatory condition implies mandatory condition false
+ if (!JexlUtils.isExpressionValid(itemTO.getMandatoryCondition() == null
+ ? "false" : itemTO.getMandatoryCondition())) {
+
+ SyncopeClientException invalidMandatoryCondition = SyncopeClientException.build(
+ ClientExceptionType.InvalidValues);
+ invalidMandatoryCondition.getElements().add(itemTO.getMandatoryCondition());
+ scce.addException(invalidMandatoryCondition);
}
- if (allowed) {
- // no mandatory condition implies mandatory condition false
- if (!JexlUtils.isExpressionValid(itemTO.getMandatoryCondition() == null
- ? "false" : itemTO.getMandatoryCondition())) {
-
- SyncopeClientException invalidMandatoryCondition = SyncopeClientException.build(
- ClientExceptionType.InvalidValues);
- invalidMandatoryCondition.getElements().add(itemTO.getMandatoryCondition());
- scce.addException(invalidMandatoryCondition);
+ OIDCProviderItem item = entityFactory.newEntity(OIDCProviderItem.class);
+ item.setIntAttrName(itemTO.getIntAttrName());
+ item.setExtAttrName(itemTO.getExtAttrName());
+ item.setMandatoryCondition(itemTO.getMandatoryCondition());
+ item.setConnObjectKey(itemTO.isConnObjectKey());
+ item.setPassword(itemTO.isPassword());
+ item.setPropagationJEXLTransformer(itemTO.getPropagationJEXLTransformer());
+ item.setPullJEXLTransformer(itemTO.getPullJEXLTransformer());
+ item.setOP(op);
+ item.setPurpose(MappingPurpose.NONE);
+ if (item.isConnObjectKey()) {
+ if (intAttrName.getSchemaType() == SchemaType.VIRTUAL) {
+ invalidMapping.getElements().
+ add("Virtual attributes cannot be set as ConnObjectKey");
}
-
- OIDCProviderItem item = entityFactory.newEntity(OIDCProviderItem.class);
- item.setIntAttrName(itemTO.getIntAttrName());
- item.setExtAttrName(itemTO.getExtAttrName());
- item.setMandatoryCondition(itemTO.getMandatoryCondition());
- item.setConnObjectKey(itemTO.isConnObjectKey());
- item.setPassword(itemTO.isPassword());
- item.setPropagationJEXLTransformer(itemTO.getPropagationJEXLTransformer());
- item.setPullJEXLTransformer(itemTO.getPullJEXLTransformer());
- item.setOP(op);
- item.setPurpose(MappingPurpose.NONE);
- if (item.isConnObjectKey()) {
- if (intAttrName.getSchemaType() == SchemaType.VIRTUAL) {
- invalidMapping.getElements().
- add("Virtual attributes cannot be set as ConnObjectKey");
- }
- if ("password".equals(intAttrName.getField())) {
- invalidMapping.getElements().add(
- "Password attributes cannot be set as ConnObjectKey");
- }
-
- op.setConnObjectKeyItem(item);
- } else {
- op.add(item);
+ if ("password".equals(intAttrName.getField())) {
+ invalidMapping.getElements().add(
+ "Password attributes cannot be set as ConnObjectKey");
}
+
+ op.setConnObjectKeyItem(item);
} else {
- LOG.error("'{}' not allowed", itemTO.getIntAttrName());
- invalidMapping.getElements().add('\'' + itemTO.getIntAttrName() + "' not allowed");
+ op.add(item);
}
}
}
- }
+ });
if (!invalidMapping.getElements().isEmpty()) {
scce.addException(invalidMapping);
@@ -206,16 +174,7 @@ public class OIDCProviderDataBinderImpl implements OIDCProviderDataBinder {
}
op.getItems().clear();
- AnyTypeClassTO allowedSchemas = new AnyTypeClassTO();
- anyTypeDAO.findUser().getClasses().forEach(anyTypeClass -> {
- allowedSchemas.getPlainSchemas().addAll(anyTypeClass.getPlainSchemas().stream().
- map(Entity::getKey).collect(Collectors.toList()));
- allowedSchemas.getDerSchemas().addAll(anyTypeClass.getDerSchemas().stream().
- map(Entity::getKey).collect(Collectors.toList()));
- allowedSchemas.getVirSchemas().addAll(anyTypeClass.getVirSchemas().stream().
- map(Entity::getKey).collect(Collectors.toList()));
- });
- populateItems(opTO, op, allowedSchemas);
+ populateItems(opTO, op);
opTO.getActions().forEach(action -> {
Implementation implementation = implementationDAO.find(action);
diff --git a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASAML2IdPDAO.java b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASAML2IdPDAO.java
index ccf67b6..0a2fbef 100644
--- a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASAML2IdPDAO.java
+++ b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASAML2IdPDAO.java
@@ -73,5 +73,4 @@ public class JPASAML2IdPDAO extends AbstractDAO<SAML2IdP> implements SAML2IdPDAO
entityManager().remove(idp);
}
}
-
}
diff --git a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdPItem.java b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdPItem.java
index 0028789..cb029e6 100644
--- a/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdPItem.java
+++ b/ext/saml2sp/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPASAML2IdPItem.java
@@ -28,8 +28,8 @@ import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
import javax.persistence.UniqueConstraint;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
import org.apache.syncope.core.persistence.api.entity.Implementation;
import org.apache.syncope.core.persistence.api.entity.SAML2IdP;
import org.apache.syncope.core.persistence.api.entity.SAML2IdPItem;
@@ -71,7 +71,7 @@ public class JPASAML2IdPItem extends AbstractItem implements SAML2IdPItem {
@Override
public boolean add(final Implementation transformer) {
checkType(transformer, JPAImplementation.class);
- checkImplementationType(transformer, IdMImplementationType.ITEM_TRANSFORMER);
+ checkImplementationType(transformer, IdRepoImplementationType.ITEM_TRANSFORMER);
return transformers.contains((JPAImplementation) transformer)
|| this.transformers.add((JPAImplementation) transformer);
}
diff --git a/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java b/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java
index 992a8ce..93bb396 100644
--- a/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java
+++ b/ext/saml2sp/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/SAML2IdPDataBinderImpl.java
@@ -23,7 +23,6 @@ import java.util.Base64;
import java.util.stream.Collectors;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.AnyTypeClassTO;
import org.apache.syncope.common.lib.to.ItemTO;
import org.apache.syncope.common.lib.to.SAML2IdPTO;
import org.apache.syncope.common.lib.to.UserTO;
@@ -74,18 +73,14 @@ public class SAML2IdPDataBinderImpl implements SAML2IdPDataBinder {
return update(entityFactory.newEntity(SAML2IdP.class), idpTO);
}
- private void populateItems(
- final SAML2IdPTO idpTO,
- final SAML2IdP idp,
- final AnyTypeClassTO allowedSchemas) {
-
+ private void populateItems(final SAML2IdPTO idpTO, final SAML2IdP idp) {
SyncopeClientCompositeException scce = SyncopeClientException.buildComposite();
SyncopeClientException invalidMapping =
SyncopeClientException.build(ClientExceptionType.InvalidMapping);
SyncopeClientException requiredValuesMissing =
SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing);
- for (ItemTO itemTO : idpTO.getItems()) {
+ idpTO.getItems().forEach(itemTO -> {
if (itemTO == null) {
LOG.error("Null {}", ItemTO.class.getSimpleName());
invalidMapping.getElements().add("Null " + ItemTO.class.getSimpleName());
@@ -104,69 +99,43 @@ public class SAML2IdPDataBinderImpl implements SAML2IdPDataBinder {
LOG.error("'{}' not existing", itemTO.getIntAttrName());
invalidMapping.getElements().add('\'' + itemTO.getIntAttrName() + "' not existing");
} else {
- boolean allowed = true;
- if (intAttrName.getSchemaType() != null
- && intAttrName.getEnclosingGroup() == null
- && intAttrName.getRelatedAnyObject() == null) {
- switch (intAttrName.getSchemaType()) {
- case PLAIN:
- allowed = allowedSchemas.getPlainSchemas().contains(intAttrName.getSchema().getKey());
- break;
-
- case DERIVED:
- allowed = allowedSchemas.getDerSchemas().contains(intAttrName.getSchema().getKey());
- break;
-
- case VIRTUAL:
- allowed = allowedSchemas.getVirSchemas().contains(intAttrName.getSchema().getKey());
- break;
-
- default:
- }
+ // no mandatory condition implies mandatory condition false
+ if (!JexlUtils.isExpressionValid(itemTO.getMandatoryCondition() == null
+ ? "false" : itemTO.getMandatoryCondition())) {
+
+ SyncopeClientException invalidMandatoryCondition = SyncopeClientException.build(
+ ClientExceptionType.InvalidValues);
+ invalidMandatoryCondition.getElements().add(itemTO.getMandatoryCondition());
+ scce.addException(invalidMandatoryCondition);
}
- if (allowed) {
- // no mandatory condition implies mandatory condition false
- if (!JexlUtils.isExpressionValid(itemTO.getMandatoryCondition() == null
- ? "false" : itemTO.getMandatoryCondition())) {
-
- SyncopeClientException invalidMandatoryCondition = SyncopeClientException.build(
- ClientExceptionType.InvalidValues);
- invalidMandatoryCondition.getElements().add(itemTO.getMandatoryCondition());
- scce.addException(invalidMandatoryCondition);
+ SAML2IdPItem item = entityFactory.newEntity(SAML2IdPItem.class);
+ item.setIntAttrName(itemTO.getIntAttrName());
+ item.setExtAttrName(itemTO.getExtAttrName());
+ item.setMandatoryCondition(itemTO.getMandatoryCondition());
+ item.setConnObjectKey(itemTO.isConnObjectKey());
+ item.setPassword(itemTO.isPassword());
+ item.setPropagationJEXLTransformer(itemTO.getPropagationJEXLTransformer());
+ item.setPullJEXLTransformer(itemTO.getPullJEXLTransformer());
+ item.setIdP(idp);
+ item.setPurpose(MappingPurpose.NONE);
+ if (item.isConnObjectKey()) {
+ if (intAttrName.getSchemaType() == SchemaType.VIRTUAL) {
+ invalidMapping.getElements().
+ add("Virtual attributes cannot be set as ConnObjectKey");
}
-
- SAML2IdPItem item = entityFactory.newEntity(SAML2IdPItem.class);
- item.setIntAttrName(itemTO.getIntAttrName());
- item.setExtAttrName(itemTO.getExtAttrName());
- item.setMandatoryCondition(itemTO.getMandatoryCondition());
- item.setConnObjectKey(itemTO.isConnObjectKey());
- item.setPassword(itemTO.isPassword());
- item.setPropagationJEXLTransformer(itemTO.getPropagationJEXLTransformer());
- item.setPullJEXLTransformer(itemTO.getPullJEXLTransformer());
- item.setIdP(idp);
- item.setPurpose(MappingPurpose.NONE);
- if (item.isConnObjectKey()) {
- if (intAttrName.getSchemaType() == SchemaType.VIRTUAL) {
- invalidMapping.getElements().
- add("Virtual attributes cannot be set as ConnObjectKey");
- }
- if ("password".equals(intAttrName.getField())) {
- invalidMapping.getElements().add(
- "Password attributes cannot be set as ConnObjectKey");
- }
-
- idp.setConnObjectKeyItem(item);
- } else {
- idp.add(item);
+ if ("password".equals(intAttrName.getField())) {
+ invalidMapping.getElements().add(
+ "Password attributes cannot be set as ConnObjectKey");
}
+
+ idp.setConnObjectKeyItem(item);
} else {
- LOG.error("'{}' not allowed", itemTO.getIntAttrName());
- invalidMapping.getElements().add('\'' + itemTO.getIntAttrName() + "' not allowed");
+ idp.add(item);
}
}
}
- }
+ });
if (!invalidMapping.getElements().isEmpty()) {
scce.addException(invalidMapping);
@@ -202,16 +171,7 @@ public class SAML2IdPDataBinderImpl implements SAML2IdPDataBinder {
}
idp.getItems().clear();
- AnyTypeClassTO allowedSchemas = new AnyTypeClassTO();
- anyTypeDAO.findUser().getClasses().forEach(anyTypeClass -> {
- allowedSchemas.getPlainSchemas().addAll(anyTypeClass.getPlainSchemas().stream().
- map(Entity::getKey).collect(Collectors.toList()));
- allowedSchemas.getDerSchemas().addAll(anyTypeClass.getDerSchemas().stream().
- map(Entity::getKey).collect(Collectors.toList()));
- allowedSchemas.getVirSchemas().addAll(anyTypeClass.getVirSchemas().stream().
- map(Entity::getKey).collect(Collectors.toList()));
- });
- populateItems(idpTO, idp, allowedSchemas);
+ populateItems(idpTO, idp);
idpTO.getActions().forEach(action -> {
Implementation implementation = implementationDAO.find(action);
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
index 40834af..dcebb97 100644
--- a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
@@ -184,7 +184,7 @@ public class ITImplementationLookup implements ImplementationLookup {
classNames = new HashSet<>();
classNames.add(DateToDateItemTransformer.class.getName());
classNames.add(DateToLongItemTransformer.class.getName());
- put(IdMImplementationType.ITEM_TRANSFORMER, classNames);
+ put(IdRepoImplementationType.ITEM_TRANSFORMER, classNames);
classNames = new HashSet<>();
classNames.add(TestSampleJobDelegate.class.getName());
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java
index a13c4fa..ab51c1f 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java
@@ -45,6 +45,7 @@ import org.apache.syncope.common.lib.auth.StaticAuthModuleConf;
import org.apache.syncope.common.lib.auth.SyncopeAuthModuleConf;
import org.apache.syncope.common.lib.auth.U2FAuthModuleConf;
import org.apache.syncope.common.lib.to.AuthModuleTO;
+import org.apache.syncope.common.lib.to.ItemTO;
public class AuthModuleITCase extends AbstractITCase {
@@ -66,8 +67,8 @@ public class AuthModuleITCase extends AbstractITCase {
AuthModuleTO authModuleTO = new AuthModuleTO();
authModuleTO.setName("Test" + type + "AuthenticationModule" + getUUIDString());
authModuleTO.setDescription("A test " + type + " Authentication Module");
- AuthModuleConf conf;
+ AuthModuleConf conf;
switch (type) {
case LDAP:
conf = new LDAPAuthModuleConf();
@@ -161,19 +162,21 @@ public class AuthModuleITCase extends AbstractITCase {
}
authModuleTO.setConf(conf);
- return authModuleTO;
- }
+ ItemTO keyMapping = new ItemTO();
+ keyMapping.setIntAttrName("uid");
+ keyMapping.setExtAttrName("username");
+ authModuleTO.add(keyMapping);
- @Test
- public void findAll() {
- List<AuthModuleTO> authModuleTOs = authModuleService.list();
- assertNotNull(authModuleTOs);
- assertFalse(authModuleTOs.isEmpty());
- assertTrue(authModuleTOs.size() >= 10);
+ ItemTO fullnameMapping = new ItemTO();
+ fullnameMapping.setIntAttrName("cn");
+ fullnameMapping.setExtAttrName("fullname");
+ authModuleTO.add(fullnameMapping);
+
+ return authModuleTO;
}
@Test
- public void listByType() {
+ public void list() {
List<AuthModuleTO> authModuleTOs = authModuleService.list();
assertNotNull(authModuleTOs);
assertFalse(authModuleTOs.isEmpty());
@@ -564,17 +567,17 @@ public class AuthModuleITCase extends AbstractITCase {
private void testCreate(final AuthModuleSupportedType type) {
AuthModuleTO authModuleTO = createAuthModule(buildAuthModuleTO(type));
assertNotNull(authModuleTO);
- assertTrue(authModuleTO.getName().contains(
- "Test" + type + "AuthenticationModule"));
- assertTrue(authModuleTO.getDescription().contains(
- "A test " + type + " Authentication Module"));
+ assertTrue(authModuleTO.getName().contains("Test" + type + "AuthenticationModule"));
+ assertTrue(authModuleTO.getDescription().contains("A test " + type + " Authentication Module"));
+ assertEquals(2, authModuleTO.getItems().size());
}
private void testDelete(final AuthModuleSupportedType type) {
- AuthModuleTO authModuleTO = buildAuthModuleTO(type);
- AuthModuleTO read = createAuthModule(authModuleTO);
+ AuthModuleTO read = createAuthModule(buildAuthModuleTO(type));
assertNotNull(read);
+
authModuleService.delete(read.getKey());
+
try {
authModuleService.read(read.getKey());
fail("This should not happen");
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java
index 4b65c75..817e121 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PolicyITCase.java
@@ -66,14 +66,13 @@ public class PolicyITCase extends AbstractITCase {
String authPolicyName = "TestAuthPolicy" + getUUIDString();
ImplementationTO implementationTO = null;
try {
- implementationTO = implementationService.read(
- AMImplementationType.AUTH_POLICY_CONFIGURATIONS, authPolicyName);
+ implementationTO = implementationService.read(AMImplementationType.AUTH_POLICY_CONF, authPolicyName);
} catch (SyncopeClientException e) {
if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) {
implementationTO = new ImplementationTO();
implementationTO.setKey(authPolicyName);
implementationTO.setEngine(ImplementationEngine.JAVA);
- implementationTO.setType(AMImplementationType.AUTH_POLICY_CONFIGURATIONS);
+ implementationTO.setType(AMImplementationType.AUTH_POLICY_CONF);
DefaultAuthPolicyConf conf = new DefaultAuthPolicyConf();
conf.getAuthModules().addAll(List.of("LdapAuthentication1"));
@@ -97,14 +96,13 @@ public class PolicyITCase extends AbstractITCase {
private static AttrReleasePolicyTO buildAttributeReleasePolicyTO(final String policyName) {
ImplementationTO implementationTO = null;
try {
- implementationTO = implementationService.read(
- AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS, policyName);
+ implementationTO = implementationService.read(AMImplementationType.ATTR_RELEASE_POLICY_CONF, policyName);
} catch (SyncopeClientException e) {
if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) {
implementationTO = new ImplementationTO();
implementationTO.setKey(policyName);
implementationTO.setEngine(ImplementationEngine.JAVA);
- implementationTO.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS);
+ implementationTO.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONF);
AllowedAttrReleasePolicyConf conf = new AllowedAttrReleasePolicyConf();
conf.setName("MyDefaultAttrReleasePolicyConf");
@@ -131,14 +129,13 @@ public class PolicyITCase extends AbstractITCase {
ImplementationTO implementationTO = null;
try {
- implementationTO = implementationService.read(
- AMImplementationType.ACCESS_POLICY_CONFIGURATIONS, accessPolicyName);
+ implementationTO = implementationService.read(AMImplementationType.ACCESS_POLICY_CONF, accessPolicyName);
} catch (SyncopeClientException e) {
if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) {
implementationTO = new ImplementationTO();
implementationTO.setKey(accessPolicyName);
implementationTO.setEngine(ImplementationEngine.JAVA);
- implementationTO.setType(AMImplementationType.ACCESS_POLICY_CONFIGURATIONS);
+ implementationTO.setType(AMImplementationType.ACCESS_POLICY_CONF);
DefaultAccessPolicyConf conf = new DefaultAccessPolicyConf();
conf.setEnabled(true);
@@ -332,8 +329,7 @@ public class PolicyITCase extends AbstractITCase {
assertNotNull(newAuthPolicyTO);
newAuthPolicyTO = createPolicy(PolicyType.AUTH, newAuthPolicyTO);
- ImplementationTO authPolicyImplementationTO = implementationService.read(
- AMImplementationType.AUTH_POLICY_CONFIGURATIONS, "MyDefaultAuthPolicyConf");
+ ImplementationTO authPolicyImplementationTO = implementationService.read(AMImplementationType.AUTH_POLICY_CONF, "MyDefaultAuthPolicyConf");
assertNotNull(authPolicyImplementationTO);
assertFalse(StringUtils.isBlank(authPolicyImplementationTO.getBody()));
@@ -365,8 +361,7 @@ public class PolicyITCase extends AbstractITCase {
newAccessPolicyTO = createPolicy(PolicyType.ACCESS, newAccessPolicyTO);
assertNotNull(newAccessPolicyTO);
- ImplementationTO accessPolicyImplementationTO = implementationService.read(
- AMImplementationType.ACCESS_POLICY_CONFIGURATIONS, "MyDefaultAccessPolicyConf");
+ ImplementationTO accessPolicyImplementationTO = implementationService.read(AMImplementationType.ACCESS_POLICY_CONF, "MyDefaultAccessPolicyConf");
assertNotNull(accessPolicyImplementationTO);
assertFalse(StringUtils.isBlank(accessPolicyImplementationTO.getBody()));
@@ -400,8 +395,7 @@ public class PolicyITCase extends AbstractITCase {
newPolicyTO = createPolicy(PolicyType.ATTR_RELEASE, newPolicyTO);
assertNotNull(newPolicyTO);
- ImplementationTO implementationTO = implementationService.read(
- AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS, policyName);
+ ImplementationTO implementationTO = implementationService.read(AMImplementationType.ATTR_RELEASE_POLICY_CONF, policyName);
assertNotNull(implementationTO);
assertFalse(StringUtils.isBlank(implementationTO.getBody()));
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
index 95475fd..0a109ac 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PropagationTaskITCase.java
@@ -62,9 +62,9 @@ import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.common.lib.types.IdMImplementationType;
import org.apache.syncope.common.lib.types.ImplementationEngine;
import org.apache.syncope.common.lib.types.AttrSchemaType;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
import org.apache.syncope.common.lib.types.MappingPurpose;
import org.apache.syncope.common.lib.types.PatchOperation;
import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
@@ -91,15 +91,15 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
ImplementationTO dateToDate = null;
try {
dateToLong = implementationService.read(
- IdMImplementationType.ITEM_TRANSFORMER, DateToLongItemTransformer.class.getSimpleName());
+ IdRepoImplementationType.ITEM_TRANSFORMER, DateToLongItemTransformer.class.getSimpleName());
dateToDate = implementationService.read(
- IdMImplementationType.ITEM_TRANSFORMER, DateToDateItemTransformer.class.getSimpleName());
+ IdRepoImplementationType.ITEM_TRANSFORMER, DateToDateItemTransformer.class.getSimpleName());
} catch (SyncopeClientException e) {
if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) {
dateToLong = new ImplementationTO();
dateToLong.setKey(DateToLongItemTransformer.class.getSimpleName());
dateToLong.setEngine(ImplementationEngine.JAVA);
- dateToLong.setType(IdMImplementationType.ITEM_TRANSFORMER);
+ dateToLong.setType(IdRepoImplementationType.ITEM_TRANSFORMER);
dateToLong.setBody(DateToLongItemTransformer.class.getName());
Response response = implementationService.create(dateToLong);
dateToLong = implementationService.read(
@@ -109,7 +109,7 @@ public class PropagationTaskITCase extends AbstractTaskITCase {
dateToDate = new ImplementationTO();
dateToDate.setKey(DateToDateItemTransformer.class.getSimpleName());
dateToDate.setEngine(ImplementationEngine.JAVA);
- dateToDate.setType(IdMImplementationType.ITEM_TRANSFORMER);
+ dateToDate.setType(IdRepoImplementationType.ITEM_TRANSFORMER);
dateToDate.setBody(DateToDateItemTransformer.class.getName());
response = implementationService.create(dateToDate);
dateToDate = implementationService.read(
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index 5be88ed..d1146f4 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -83,6 +83,7 @@ import org.apache.syncope.common.lib.types.ImplementationEngine;
import org.apache.syncope.common.lib.types.PolicyType;
import org.apache.syncope.common.lib.types.ExecStatus;
import org.apache.syncope.common.lib.types.IdMImplementationType;
+import org.apache.syncope.common.lib.types.IdRepoImplementationType;
import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
import org.apache.syncope.common.lib.types.PullMode;
import org.apache.syncope.common.lib.types.ResourceOperation;
@@ -497,13 +498,13 @@ public class PullTaskITCase extends AbstractTaskITCase {
ImplementationTO transformer = null;
try {
transformer = implementationService.read(
- IdMImplementationType.ITEM_TRANSFORMER, "PrefixItemTransformer");
+ IdRepoImplementationType.ITEM_TRANSFORMER, "PrefixItemTransformer");
} catch (SyncopeClientException e) {
if (e.getType().getResponseStatus() == Response.Status.NOT_FOUND) {
transformer = new ImplementationTO();
transformer.setKey("PrefixItemTransformer");
transformer.setEngine(ImplementationEngine.GROOVY);
- transformer.setType(IdMImplementationType.ITEM_TRANSFORMER);
+ transformer.setType(IdRepoImplementationType.ITEM_TRANSFORMER);
transformer.setBody(IOUtils.toString(
getClass().getResourceAsStream("/PrefixItemTransformer.groovy"), StandardCharsets.UTF_8));
Response response = implementationService.create(transformer);
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
index 8a0d9b2..884eaee 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
@@ -220,7 +220,7 @@ public class RealmITCase extends AbstractITCase {
ImplementationTO rule = new ImplementationTO();
rule.setKey("TestAuthPolicy" + getUUIDString());
rule.setEngine(ImplementationEngine.JAVA);
- rule.setType(AMImplementationType.AUTH_POLICY_CONFIGURATIONS);
+ rule.setType(AMImplementationType.AUTH_POLICY_CONF);
rule.setBody(POJOHelper.serialize(ruleConf));
Response response = implementationService.create(rule);
rule.setKey(response.getHeaderString(RESTHeaders.RESOURCE_KEY));
@@ -271,7 +271,7 @@ public class RealmITCase extends AbstractITCase {
ImplementationTO rule = new ImplementationTO();
rule.setKey("TestAccessPolicy" + getUUIDString());
rule.setEngine(ImplementationEngine.JAVA);
- rule.setType(AMImplementationType.ACCESS_POLICY_CONFIGURATIONS);
+ rule.setType(AMImplementationType.ACCESS_POLICY_CONF);
rule.setBody(POJOHelper.serialize(ruleConf));
Response response = implementationService.create(rule);
rule.setKey(response.getHeaderString(RESTHeaders.RESOURCE_KEY));
@@ -321,7 +321,7 @@ public class RealmITCase extends AbstractITCase {
ImplementationTO rule = new ImplementationTO();
rule.setKey("TestAttrReleasePolicy" + getUUIDString());
rule.setEngine(ImplementationEngine.JAVA);
- rule.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONFIGURATIONS);
+ rule.setType(AMImplementationType.ATTR_RELEASE_POLICY_CONF);
rule.setBody(POJOHelper.serialize(ruleConf));
Response response = implementationService.create(rule);
rule.setKey(response.getHeaderString(RESTHeaders.RESOURCE_KEY));
diff --git a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.java b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.java
index 9e4096d..dc9c7cf 100644
--- a/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.java
+++ b/ide/netbeans/src/main/java/org/apache/syncope/ide/netbeans/view/ResourceExplorerTopComponent.java
@@ -402,7 +402,7 @@ public final class ResourceExplorerTopComponent extends TopComponent {
templateClassName = "MyPasswordRule";
break;
- case IdMImplementationType.ITEM_TRANSFORMER:
+ case IdRepoImplementationType.ITEM_TRANSFORMER:
templateClassName = "MyItemTransformer";
break;