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/02/27 10:04:38 UTC

[syncope] branch SYNCOPE-163-1 updated: clean up access policy

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


The following commit(s) were added to refs/heads/SYNCOPE-163-1 by this push:
     new a08f628  clean up access policy
a08f628 is described below

commit a08f6286f064684a93dcd0bfa7154a2722a72ea3
Author: Misagh Moayyed <mm...@gmail.com>
AuthorDate: Thu Feb 27 13:33:59 2020 +0330

    clean up access policy
---
 .../AccessPolicyTO.java}                           | 24 +++++++++++-----------
 .../lib/{to => policy}/AuthenticationPolicyTO.java | 22 ++++++++++----------
 .../syncope/common/lib/to/ClientApplicationTO.java |  1 +
 .../syncope/common/lib/types/PolicyType.java       |  8 ++++++++
 .../jpa/entity/policy/JPAPolicyUtils.java          |  8 ++++++++
 .../jpa/entity/policy/JPAPolicyUtilsFactory.java   | 12 +++++++++++
 6 files changed, 52 insertions(+), 23 deletions(-)

diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AccessPolicyTO.java
similarity index 66%
copy from common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java
copy to common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AccessPolicyTO.java
index feb7f32..6a6306a 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AccessPolicyTO.java
@@ -17,25 +17,25 @@
  *
  */
 
-package org.apache.syncope.common.lib.to;
+package org.apache.syncope.common.lib.policy;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
-@XmlRootElement(name = "authenticationPolicy")
+@XmlRootElement(name = "accessPolicy")
 @XmlType
-public class AuthenticationPolicyTO implements EntityTO {
+public class AccessPolicyTO extends PolicyTO {
     private static final long serialVersionUID = -6711411162433533300L;
 
-    private String key;
-
-    @Override
-    public String getKey() {
-        return key;
-    }
-
+    @XmlTransient
+    @JsonProperty("@class")
+    @Schema(name = "@class", required = true, example = "org.apache.syncope.common.lib.policy.AccessPolicyTO")
     @Override
-    public void setKey(final String key) {
-        this.key = key;
+    public String getDiscriminator() {
+        return getClass().getName();
     }
 }
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AuthenticationPolicyTO.java
similarity index 68%
rename from common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java
rename to common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AuthenticationPolicyTO.java
index feb7f32..ea9c5c3 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/AuthenticationPolicyTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AuthenticationPolicyTO.java
@@ -17,25 +17,25 @@
  *
  */
 
-package org.apache.syncope.common.lib.to;
+package org.apache.syncope.common.lib.policy;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 @XmlRootElement(name = "authenticationPolicy")
 @XmlType
-public class AuthenticationPolicyTO implements EntityTO {
+public class AuthenticationPolicyTO extends PolicyTO {
     private static final long serialVersionUID = -6711411162433533300L;
 
-    private String key;
-
-    @Override
-    public String getKey() {
-        return key;
-    }
-
+    @XmlTransient
+    @JsonProperty("@class")
+    @Schema(name = "@class", required = true, example = "org.apache.syncope.common.lib.policy.AuthenticationPolicyTO")
     @Override
-    public void setKey(final String key) {
-        this.key = key;
+    public String getDiscriminator() {
+        return getClass().getName();
     }
 }
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/ClientApplicationTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/ClientApplicationTO.java
index f705dae..0c58ea9 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/ClientApplicationTO.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/ClientApplicationTO.java
@@ -25,6 +25,7 @@ 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.policy.AuthenticationPolicyTO;
 
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlType;
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 ea429c2..cb92071 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
@@ -32,6 +32,14 @@ public enum PolicyType {
      */
     PASSWORD,
     /**
+     * How authentication policies should look like.
+     */
+    AUTHENTICATION,
+    /**
+     * How access policies should be defined.
+     */
+    ACCESS,
+    /**
      * For handling conflicts resolution during pull.
      */
     PULL,
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 d87325e..dc9c0fd 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
@@ -19,7 +19,9 @@
 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.AuthenticationPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.Policy;
 import org.apache.syncope.core.persistence.api.entity.policy.PolicyUtils;
@@ -50,6 +52,12 @@ public class JPAPolicyUtils implements PolicyUtils {
 
             case PULL:
                 return PullPolicy.class;
+                
+            case AUTHENTICATION:
+                return AuthenticationPolicy.class;
+
+            case ACCESS:
+                return AccessPolicy.class;
 
             case PUSH:
             default:
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 2a616c2..9eca22a 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,13 +18,17 @@
  */
 package org.apache.syncope.core.persistence.jpa.entity.policy;
 
+import org.apache.syncope.common.lib.policy.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.policy.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.AuthenticationPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
 import org.apache.syncope.core.persistence.api.entity.policy.Policy;
 import org.apache.syncope.core.persistence.api.entity.policy.PolicyUtils;
@@ -52,6 +56,10 @@ public class JPAPolicyUtilsFactory implements PolicyUtilsFactory {
             type = PolicyType.PULL;
         } else if (policy instanceof PushPolicy) {
             type = PolicyType.PUSH;
+        } else if (policy instanceof AuthenticationPolicy) {
+            type = PolicyType.AUTHENTICATION;
+        } else if (policy instanceof AccessPolicy) {
+            type = PolicyType.ACCESS;
         } else {
             throw new IllegalArgumentException("Invalid policy: " + policy);
         }
@@ -70,6 +78,10 @@ public class JPAPolicyUtilsFactory implements PolicyUtilsFactory {
             type = PolicyType.PULL;
         } else if (policyClass == PushPolicyTO.class) {
             type = PolicyType.PUSH;
+        } else if (policyClass == AuthenticationPolicyTO.class) {
+            type = PolicyType.AUTHENTICATION;
+        } else if (policyClass == AccessPolicyTO.class) {
+            type = PolicyType.ACCESS;
         } else {
             throw new IllegalArgumentException("Invalid PolicyTO class: " + policyClass.getName());
         }