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());
}