You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by mm...@apache.org on 2020/03/07 15:49:46 UTC

[syncope] 02/06: working on attribute release policies

This is an automated email from the ASF dual-hosted git repository.

mmoayyed pushed a commit to branch SYNCOPE-163-1
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 0df22a126e59f3c5fb07b3c6c07cc4b3b96e1dbc
Author: Misagh Moayyed <mm...@gmail.com>
AuthorDate: Thu Mar 5 19:30:30 2020 +0330

    working on attribute release policies
---
 .../common/lib/{access => }/to/AccessPolicyTO.java   |  4 ++--
 .../policy => }/to/AuthenticationPolicyTO.java       |  5 +++--
 .../syncope/common/lib/to/client/ClientAppTO.java    | 20 +++++++++++++++++---
 .../common/lib/types/AMImplementationType.java       | 13 ++++++++++---
 .../apache/syncope/common/lib/types/PolicyType.java  |  4 ++++
 .../syncope/core/persistence/api/dao/PolicyDAO.java  |  3 +++
 .../core/persistence/jpa/dao/JPAPolicyDAO.java       | 15 +++++++++++++--
 .../jpa/entity/policy/JPAPolicyUtils.java            |  4 ++++
 .../jpa/entity/policy/JPAPolicyUtilsFactory.java     | 10 ++++++++--
 .../java/data/OIDCRelyingPartyDataBinderImpl.java    |  4 ++--
 .../provisioning/java/data/PolicyDataBinderImpl.java |  4 ++--
 .../syncope/fit/core/OIDCRelyingPartyITCase.java     |  4 ++--
 .../org/apache/syncope/fit/core/PolicyITCase.java    |  4 ++--
 13 files changed, 72 insertions(+), 22 deletions(-)

diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/access/to/AccessPolicyTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AccessPolicyTO.java
similarity index 93%
rename from common/am/lib/src/main/java/org/apache/syncope/common/lib/access/to/AccessPolicyTO.java
rename to common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AccessPolicyTO.java
index 4849ff3..c0182e4 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/access/to/AccessPolicyTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AccessPolicyTO.java
@@ -16,7 +16,7 @@
  * under the License.
  *
  */
-package org.apache.syncope.common.lib.access.to;
+package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -34,7 +34,7 @@ public class AccessPolicyTO extends PolicyTO {
 
     @XmlTransient
     @JsonProperty("@class")
-    @Schema(name = "@class", required = true, example = "org.apache.syncope.common.lib.access.to.AccessPolicyTO")
+    @Schema(name = "@class", required = true, example = "org.apache.syncope.common.lib.to.AccessPolicyTO")
     @Override
     public String getDiscriminator() {
         return getClass().getName();
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/authentication/policy/to/AuthenticationPolicyTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java
similarity index 87%
rename from common/am/lib/src/main/java/org/apache/syncope/common/lib/authentication/policy/to/AuthenticationPolicyTO.java
rename to common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java
index 4b42110..bc14a6d 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/authentication/policy/to/AuthenticationPolicyTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java
@@ -16,7 +16,7 @@
  * under the License.
  *
  */
-package org.apache.syncope.common.lib.authentication.policy.to;
+package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -34,7 +34,8 @@ public class AuthenticationPolicyTO extends PolicyTO {
 
     @XmlTransient
     @JsonProperty("@class")
-    @Schema(name = "@class", required = true, example = "org.apache.syncope.common.lib.authentication.policy.to.AuthenticationPolicyTO")
+    @Schema(name = "@class", required = true,
+        example = "org.apache.syncope.common.lib.to.AuthenticationPolicyTO")
     @Override
     public String getDiscriminator() {
         return getClass().getName();
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/ClientAppTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/ClientAppTO.java
index 0a200b8..db79686 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/ClientAppTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/ClientAppTO.java
@@ -25,8 +25,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.syncope.common.lib.BaseBean;
-import org.apache.syncope.common.lib.access.to.AccessPolicyTO;
-import org.apache.syncope.common.lib.authentication.policy.to.AuthenticationPolicyTO;
+import org.apache.syncope.common.lib.to.AccessPolicyTO;
+import org.apache.syncope.common.lib.to.AttrReleasePolicyTO;
+import org.apache.syncope.common.lib.to.AuthenticationPolicyTO;
 import org.apache.syncope.common.lib.to.EntityTO;
 
 import javax.xml.bind.annotation.XmlSeeAlso;
@@ -35,7 +36,8 @@ import javax.xml.bind.annotation.XmlType;
 @XmlType
 @XmlSeeAlso({OIDCRelyingPartyTO.class, SAML2SPTO.class})
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "@class")
-@JsonPropertyOrder(value = {"@class", "key", "name", "description", "authenticationPolicy"})
+@JsonPropertyOrder(value = {"@class", "key", "name", "description",
+    "authenticationPolicy", "accessPolicy", "attrReleasePolicy"})
 @Schema(subTypes = {OIDCRelyingPartyTO.class, SAML2SPTO.class}, discriminatorProperty = "@class")
 public abstract class ClientAppTO extends BaseBean implements EntityTO {
 
@@ -51,6 +53,16 @@ public abstract class ClientAppTO extends BaseBean implements EntityTO {
 
     private AccessPolicyTO accessPolicy;
 
+    private AttrReleasePolicyTO attrReleasePolicy;
+
+    public AttrReleasePolicyTO getAttrReleasePolicy() {
+        return attrReleasePolicy;
+    }
+
+    public void setAttrReleasePolicy(final AttrReleasePolicyTO attrReleasePolicy) {
+        this.attrReleasePolicy = attrReleasePolicy;
+    }
+
     public AccessPolicyTO getAccessPolicy() {
         return accessPolicy;
     }
@@ -105,6 +117,7 @@ public abstract class ClientAppTO extends BaseBean implements EntityTO {
             .append(description)
             .append(authenticationPolicy)
             .append(accessPolicy)
+            .append(attrReleasePolicy)
             .toHashCode();
     }
 
@@ -127,6 +140,7 @@ public abstract class ClientAppTO extends BaseBean implements EntityTO {
             .append(this.description, rhs.description)
             .append(this.authenticationPolicy, rhs.authenticationPolicy)
             .append(this.accessPolicy, rhs.accessPolicy)
+            .append(this.attrReleasePolicy, rhs.attrReleasePolicy)
             .isEquals();
     }
 }
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 5a939bd..cb344c0 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
@@ -30,14 +30,21 @@ public final class AMImplementationType {
 
     public static final String ACCESS_POLICY_CONFIGURATIONS = "ACCESS_POLICY_CONFIGURATIONS";
 
+    public static final String ATTR_RELEASE_POLICY_CONFIGURATIONS = "ATTR_RELEASE_CONFIGURATIONS";
+
     private AMImplementationType() {
         // private constructor for static utility class
     }
 
     private static final Map<String, String> VALUES = Map.ofEntries(
-        Pair.of(AUTH_MODULE_CONFIGURATIONS, "org.apache.syncope.common.lib.authentication.policy.AuthenticationPolicyConf"),
-        Pair.of(AUTH_POLICY_CONFIGURATIONS, "org.apache.syncope.common.lib.authentication.module.AuthenticationModuleConf"),
-        Pair.of(ACCESS_POLICY_CONFIGURATIONS, "org.apache.syncope.core.persistence.api.dao.AccessPolicyConf"));
+        Pair.of(AUTH_MODULE_CONFIGURATIONS,
+            "org.apache.syncope.common.lib.authentication.policy.AuthenticationPolicyConf"),
+        Pair.of(AUTH_POLICY_CONFIGURATIONS,
+            "org.apache.syncope.common.lib.authentication.module.AuthenticationModuleConf"),
+        Pair.of(ATTR_RELEASE_POLICY_CONFIGURATIONS,
+            "org.apache.syncope.common.lib.authentication.module.AuthenticationModuleConf"),
+        Pair.of(ACCESS_POLICY_CONFIGURATIONS,
+            "org.apache.syncope.common.lib.attrs.AttrReleasePolicyConf"));
 
     public static Map<String, String> values() {
         return VALUES;
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java
index cb92071..108e8d6 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java
@@ -36,6 +36,10 @@ public enum PolicyType {
      */
     AUTHENTICATION,
     /**
+     * How attribute release policies should look like.
+     */
+    ATTR_RELEASE,
+    /**
      * How access policies should be defined.
      */
     ACCESS,
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/PolicyDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/PolicyDAO.java
index de22a47..4d0cb1e 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/PolicyDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/PolicyDAO.java
@@ -22,6 +22,7 @@ import java.util.List;
 import org.apache.syncope.core.persistence.api.entity.Implementation;
 import org.apache.syncope.core.persistence.api.entity.policy.AccessPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
+import org.apache.syncope.core.persistence.api.entity.policy.AttrReleasePolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AuthenticationPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.Policy;
@@ -45,6 +46,8 @@ public interface PolicyDAO extends DAO<Policy> {
 
     List<AccessPolicy> findByAccessPolicy(Implementation policy);
 
+    List<AttrReleasePolicy> findByAttrReleasePolicy(Implementation policy);
+
     List<PushPolicy> findByPushCorrelationRule(Implementation correlationRule);
 
     List<AccountPolicy> findByResource(ExternalResource resource);
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPolicyDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPolicyDAO.java
index 382879a..55faf8b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPolicyDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAPolicyDAO.java
@@ -26,6 +26,7 @@ import org.apache.syncope.core.persistence.api.dao.RealmDAO;
 import org.apache.syncope.core.persistence.api.entity.Implementation;
 import org.apache.syncope.core.persistence.api.entity.policy.AccessPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
+import org.apache.syncope.core.persistence.api.entity.policy.AttrReleasePolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AuthenticationPolicy;
 import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
 import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
@@ -35,6 +36,7 @@ import org.apache.syncope.core.persistence.api.entity.policy.PushPolicy;
 import org.apache.syncope.core.persistence.jpa.entity.policy.AbstractPolicy;
 import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAccessPolicy;
 import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAccountPolicy;
+import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAttrReleasePolicy;
 import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAuthenticationPolicy;
 import org.apache.syncope.core.persistence.jpa.entity.policy.JPAPullCorrelationRuleEntity;
 import org.apache.syncope.core.persistence.jpa.entity.policy.JPAPasswordPolicy;
@@ -68,6 +70,8 @@ public class JPAPolicyDAO extends AbstractDAO<Policy> implements PolicyDAO {
                 : AuthenticationPolicy.class.isAssignableFrom(reference)
                 ? JPAAuthenticationPolicy.class
                 : AccessPolicy.class.isAssignableFrom(reference)
+                ? JPAAttrReleasePolicy.class
+                : AttrReleasePolicy.class.isAssignableFrom(reference)
                 ? JPAAccessPolicy.class
                 : null;
     }
@@ -125,6 +129,15 @@ public class JPAPolicyDAO extends AbstractDAO<Policy> implements PolicyDAO {
     }
 
     @Override
+    public List<AttrReleasePolicy> findByAttrReleasePolicy(final Implementation policy) {
+        TypedQuery<AttrReleasePolicy> query = entityManager().createQuery(
+            "SELECT e FROM " + JPAAttrReleasePolicy.class.getSimpleName() + " e "
+                + "WHERE :attrReleasePolicy MEMBER OF e.rules", AttrReleasePolicy.class);
+        query.setParameter("attrReleasePolicy", policy);
+        return query.getResultList();
+    }
+
+    @Override
     public List<PullPolicy> findByPullCorrelationRule(final Implementation correlationRule) {
         TypedQuery<PullPolicy> query = entityManager().createQuery(
                 "SELECT DISTINCT e.pullPolicy FROM " + JPAPullCorrelationRuleEntity.class.getSimpleName() + " e "
@@ -193,8 +206,6 @@ public class JPAPolicyDAO extends AbstractDAO<Policy> implements PolicyDAO {
                 realm.setAccountPolicy(null);
             } else if (policy instanceof PasswordPolicy) {
                 realm.setPasswordPolicy(null);
-            } else if (policy instanceof AuthenticationPolicy) {
-                realm.setAuthenticationPolicy(null);
             }
         });
 
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtils.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtils.java
index dc9c0fd..4e7905a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtils.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtils.java
@@ -21,6 +21,7 @@ package org.apache.syncope.core.persistence.jpa.entity.policy;
 import org.apache.syncope.common.lib.types.PolicyType;
 import org.apache.syncope.core.persistence.api.entity.policy.AccessPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
+import org.apache.syncope.core.persistence.api.entity.policy.AttrReleasePolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AuthenticationPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.Policy;
@@ -56,6 +57,9 @@ public class JPAPolicyUtils implements PolicyUtils {
             case AUTHENTICATION:
                 return AuthenticationPolicy.class;
 
+            case ATTR_RELEASE:
+                return AttrReleasePolicy.class;
+
             case ACCESS:
                 return AccessPolicy.class;
 
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtilsFactory.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtilsFactory.java
index 5051848..205f371 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtilsFactory.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/policy/JPAPolicyUtilsFactory.java
@@ -18,16 +18,18 @@
  */
 package org.apache.syncope.core.persistence.jpa.entity.policy;
 
-import org.apache.syncope.common.lib.access.to.AccessPolicyTO;
+import org.apache.syncope.common.lib.to.AccessPolicyTO;
 import org.apache.syncope.common.lib.policy.AccountPolicyTO;
 import org.apache.syncope.common.lib.policy.PasswordPolicyTO;
 import org.apache.syncope.common.lib.policy.PolicyTO;
 import org.apache.syncope.common.lib.policy.PullPolicyTO;
 import org.apache.syncope.common.lib.policy.PushPolicyTO;
-import org.apache.syncope.common.lib.authentication.policy.to.AuthenticationPolicyTO;
+import org.apache.syncope.common.lib.to.AttrReleasePolicyTO;
+import org.apache.syncope.common.lib.to.AuthenticationPolicyTO;
 import org.apache.syncope.common.lib.types.PolicyType;
 import org.apache.syncope.core.persistence.api.entity.policy.AccessPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AccountPolicy;
+import org.apache.syncope.core.persistence.api.entity.policy.AttrReleasePolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.AuthenticationPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.Policy;
@@ -60,6 +62,8 @@ public class JPAPolicyUtilsFactory implements PolicyUtilsFactory {
             type = PolicyType.AUTHENTICATION;
         } else if (policy instanceof AccessPolicy) {
             type = PolicyType.ACCESS;
+        } else if (policy instanceof AttrReleasePolicy) {
+            type = PolicyType.ATTR_RELEASE;
         } else {
             throw new IllegalArgumentException("Invalid policy: " + policy);
         }
@@ -82,6 +86,8 @@ public class JPAPolicyUtilsFactory implements PolicyUtilsFactory {
             type = PolicyType.AUTHENTICATION;
         } else if (policyClass == AccessPolicyTO.class) {
             type = PolicyType.ACCESS;
+        } else if (policyClass == AttrReleasePolicyTO.class) {
+            type = PolicyType.ATTR_RELEASE;
         } else {
             throw new IllegalArgumentException("Invalid PolicyTO class: " + policyClass.getName());
         }
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCRelyingPartyDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCRelyingPartyDataBinderImpl.java
index 4948348..d2a5d1b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCRelyingPartyDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/OIDCRelyingPartyDataBinderImpl.java
@@ -19,8 +19,8 @@
 package org.apache.syncope.core.provisioning.java.data;
 
 import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.access.to.AccessPolicyTO;
-import org.apache.syncope.common.lib.authentication.policy.to.AuthenticationPolicyTO;
+import org.apache.syncope.common.lib.to.AccessPolicyTO;
+import org.apache.syncope.common.lib.to.AuthenticationPolicyTO;
 import org.apache.syncope.common.lib.to.client.OIDCRelyingPartyTO;
 import org.apache.syncope.common.lib.types.ClientExceptionType;
 import org.apache.syncope.core.persistence.api.dao.PolicyDAO;
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
index 3a31be2..d84e859 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
@@ -19,11 +19,11 @@
 package org.apache.syncope.core.provisioning.java.data;
 
 import java.util.stream.Collectors;
-import org.apache.syncope.common.lib.access.to.AccessPolicyTO;
+import org.apache.syncope.common.lib.to.AccessPolicyTO;
 import org.apache.syncope.core.provisioning.api.data.PolicyDataBinder;
 import org.apache.syncope.common.lib.policy.PolicyTO;
 import org.apache.syncope.common.lib.policy.AccountPolicyTO;
-import org.apache.syncope.common.lib.authentication.policy.to.AuthenticationPolicyTO;
+import org.apache.syncope.common.lib.to.AuthenticationPolicyTO;
 import org.apache.syncope.common.lib.policy.PasswordPolicyTO;
 import org.apache.syncope.common.lib.policy.PullPolicyTO;
 import org.apache.syncope.common.lib.policy.PushPolicyTO;
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/OIDCRelyingPartyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/OIDCRelyingPartyITCase.java
index a87d3a2..7ad36a9 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/OIDCRelyingPartyITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/OIDCRelyingPartyITCase.java
@@ -19,12 +19,12 @@
 package org.apache.syncope.fit.core;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.lib.authentication.policy.to.AuthenticationPolicyTO;
+import org.apache.syncope.common.lib.to.AuthenticationPolicyTO;
 import org.apache.syncope.common.lib.to.client.OIDCRelyingPartyTO;
 import org.apache.syncope.common.lib.types.PolicyType;
 import org.apache.syncope.fit.AbstractITCase;
 import org.junit.jupiter.api.Test;
-import org.apache.syncope.common.lib.access.to.AccessPolicyTO;
+import org.apache.syncope.common.lib.to.AccessPolicyTO;
 
 import static org.junit.jupiter.api.Assertions.*;
 
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 6f94403..6b5ec98 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
@@ -35,9 +35,9 @@ import org.apache.commons.lang3.SerializationUtils;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.access.DefaultAccessPolicyConf;
 import org.apache.syncope.common.lib.authentication.policy.DefaultAuthenticationPolicyConf;
-import org.apache.syncope.common.lib.access.to.AccessPolicyTO;
+import org.apache.syncope.common.lib.to.AccessPolicyTO;
 import org.apache.syncope.common.lib.policy.AccountPolicyTO;
-import org.apache.syncope.common.lib.authentication.policy.to.AuthenticationPolicyTO;
+import org.apache.syncope.common.lib.to.AuthenticationPolicyTO;
 import org.apache.syncope.common.lib.policy.PasswordPolicyTO;
 import org.apache.syncope.common.lib.policy.PullPolicyTO;
 import org.apache.syncope.common.lib.policy.DefaultAccountRuleConf;