You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by sk...@apache.org on 2020/03/06 08:11:25 UTC
[syncope] branch SYNCOPE-163-1 updated: [SYNCOPE-163] Removed
access and authentication policies from external resource
This is an automated email from the ASF dual-hosted git repository.
skylark17 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 20464c8 [SYNCOPE-163] Removed access and authentication policies from external resource
20464c8 is described below
commit 20464c844b502e7ba30f79f353dc3fe50ccf01e7
Author: skylark17 <sk...@apache.org>
AuthorDate: Fri Mar 6 09:11:13 2020 +0100
[SYNCOPE-163] Removed access and authentication policies from external resource
---
.../lib/to/client/SAML2ServiceProviderTO.java | 23 ++++-----
.../service/saml/SAML2ServiceProviderService.java | 4 +-
.../api/entity/resource/ExternalResource.java | 10 ----
.../src/test/resources/domains/MasterContent.xml | 2 +-
.../jpa/dao/JPAExternalResourceDAO.java | 6 ---
.../core/persistence/jpa/dao/JPAPolicyDAO.java | 55 +++++++++++-----------
.../entity/authentication/AbstractClientApp.java | 1 -
.../jpa/entity/resource/JPAExternalResource.java | 32 -------------
.../src/test/resources/domains/MasterContent.xml | 2 +-
.../java/data/PolicyDataBinderImpl.java | 12 +++--
.../java/data/ResourceDataBinderImpl.java | 18 -------
.../org/apache/syncope/fit/core/SAML2SPITCase.java | 31 ++++++++++++
12 files changed, 80 insertions(+), 116 deletions(-)
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/SAML2ServiceProviderTO.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/SAML2ServiceProviderTO.java
index 7bf5289..f292a22 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/SAML2ServiceProviderTO.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/client/SAML2ServiceProviderTO.java
@@ -16,15 +16,13 @@
* under the License.
*
*/
-
package org.apache.syncope.common.lib.to.client;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
+import javax.xml.bind.annotation.XmlRootElement;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
-
-import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
@@ -32,6 +30,7 @@ import javax.xml.bind.annotation.XmlType;
@XmlType
@Schema(allOf = { ClientAppTO.class })
public class SAML2ServiceProviderTO extends ClientAppTO {
+
private static final long serialVersionUID = -6370888503924521351L;
private String entityId;
@@ -62,7 +61,6 @@ public class SAML2ServiceProviderTO extends ClientAppTO {
this.metadataLocation = metadataLocation;
}
-
@Override
public boolean equals(final Object obj) {
if (obj == null) {
@@ -76,19 +74,18 @@ public class SAML2ServiceProviderTO extends ClientAppTO {
}
SAML2ServiceProviderTO rhs = (SAML2ServiceProviderTO) obj;
return new EqualsBuilder()
- .appendSuper(super.equals(obj))
- .append(this.entityId, rhs.entityId)
- .append(this.metadataLocation, rhs.metadataLocation)
- .isEquals();
+ .appendSuper(super.equals(obj))
+ .append(this.entityId, rhs.entityId)
+ .append(this.metadataLocation, rhs.metadataLocation)
+ .isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder()
- .appendSuper(super.hashCode())
- .append(entityId)
- .append(metadataLocation)
- .toHashCode();
+ .appendSuper(super.hashCode())
+ .append(entityId)
+ .append(metadataLocation)
+ .toHashCode();
}
}
-
diff --git a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/saml/SAML2ServiceProviderService.java b/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/saml/SAML2ServiceProviderService.java
index e99aa23..c16183f 100644
--- a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/saml/SAML2ServiceProviderService.java
+++ b/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/saml/SAML2ServiceProviderService.java
@@ -16,7 +16,6 @@
* under the License.
*
*/
-
package org.apache.syncope.common.rest.api.service.saml;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -24,13 +23,12 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirements;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.syncope.common.lib.to.client.SAML2ServiceProviderTO;
import org.apache.syncope.common.rest.api.service.ClientAppService;
-
import javax.ws.rs.Path;
@Tag(name = "SAML2ServiceProviders")
@SecurityRequirements({
@SecurityRequirement(name = "BasicAuthentication"),
- @SecurityRequirement(name = "Bearer")})
+ @SecurityRequirement(name = "Bearer") })
@Path("saml2ServiceProviders")
public interface SAML2ServiceProviderService extends ClientAppService<SAML2ServiceProviderTO> {
}
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java
index d281fc8..8ad9c40 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/resource/ExternalResource.java
@@ -29,8 +29,6 @@ import org.apache.syncope.core.persistence.api.entity.AnyType;
import org.apache.syncope.core.persistence.api.entity.ConnInstance;
import org.apache.syncope.core.persistence.api.entity.Implementation;
import org.apache.syncope.core.persistence.api.entity.ProvidedKeyEntity;
-import org.apache.syncope.core.persistence.api.entity.policy.AccessPolicy;
-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.PullPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PushPolicy;
@@ -66,14 +64,6 @@ public interface ExternalResource extends ProvidedKeyEntity {
PushPolicy getPushPolicy();
- void setAuthenticationPolicy(AuthenticationPolicy authenticationPolicy);
-
- AuthenticationPolicy getAuthenticationPolicy();
-
- void setAccessPolicy(AccessPolicy accessPolicy);
-
- AccessPolicy getAccessPolicy();
-
Implementation getProvisionSorter();
void setProvisionSorter(Implementation provisionSorter);
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 5b28703..d25dc95 100644
--- a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
@@ -55,7 +55,7 @@ under the License.
<!-- access policies -->
<Implementation id="MyDefaultAccessPolicyConf" type="ACCESS_POLICY_CONFIGURATIONS" engine="JAVA"
- body='{"@class":"org.apache.syncope.common.lib.authentication.DefaultAccessPolicyConf","name":"MyDefaultAccessPolicyConf","enabled":true,"singleSignOnEnabled":true}'/>
+ body='{"@class":"org.apache.syncope.common.lib.access.DefaultAccessPolicyConf","name":"MyDefaultAccessPolicyConf","enabled":true,"singleSignOnEnabled":true}'/>
<AccessPolicy id="419935c7-deb3-40b3-8a9a-683037e523a2" name="MyDefaultAccessPolicyConf"
description="an access policy" />
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
index 10ea313..a76f49f 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAExternalResourceDAO.java
@@ -38,9 +38,7 @@ import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
import org.apache.syncope.core.persistence.api.entity.Entity;
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.AuthenticationPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.policy.PasswordPolicy;
@@ -162,10 +160,6 @@ public class JPAExternalResourceDAO extends AbstractDAO<ExternalResource> implem
query.append("pullPolicy");
} else if (PushPolicy.class.isAssignableFrom(policyClass)) {
query.append("pushPolicy");
- } else if (AuthenticationPolicy.class.isAssignableFrom(policyClass)) {
- query.append("authenticationPolicy");
- } else if (AccessPolicy.class.isAssignableFrom(policyClass)) {
- query.append("accessPolicy");
}
return query;
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..c768e51 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
@@ -20,6 +20,7 @@ package org.apache.syncope.core.persistence.jpa.dao;
import java.util.List;
import javax.persistence.TypedQuery;
+import org.apache.syncope.common.lib.access.to.AccessPolicyTO;
import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
import org.apache.syncope.core.persistence.api.dao.PolicyDAO;
import org.apache.syncope.core.persistence.api.dao.RealmDAO;
@@ -109,7 +110,7 @@ public class JPAPolicyDAO extends AbstractDAO<Policy> implements PolicyDAO {
@Override
public List<AuthenticationPolicy> findByAuthenticationPolicy(final Implementation policy) {
TypedQuery<AuthenticationPolicy> query = entityManager().createQuery(
- "SELECT e FROM " + JPAAuthenticationPolicy.class.getSimpleName() + " e "
+ "SELECT e FROM " + JPAAuthenticationPolicy.class.getSimpleName() + " e "
+ "WHERE :authenticationPolicy MEMBER OF e.rules", AuthenticationPolicy.class);
query.setParameter("authenticationPolicy", policy);
return query.getResultList();
@@ -118,7 +119,7 @@ public class JPAPolicyDAO extends AbstractDAO<Policy> implements PolicyDAO {
@Override
public List<AccessPolicy> findByAccessPolicy(final Implementation policy) {
TypedQuery<AccessPolicy> query = entityManager().createQuery(
- "SELECT e FROM " + JPAAuthenticationPolicy.class.getSimpleName() + " e "
+ "SELECT e FROM " + JPAAuthenticationPolicy.class.getSimpleName() + " e "
+ "WHERE :accessPolicy MEMBER OF e.rules", AccessPolicy.class);
query.setParameter("accessPolicy", policy);
return query.getResultList();
@@ -188,31 +189,31 @@ public class JPAPolicyDAO extends AbstractDAO<Policy> implements PolicyDAO {
@Override
public <T extends Policy> void delete(final T policy) {
- realmDAO.findByPolicy(policy).forEach(realm -> {
- if (policy instanceof AccountPolicy) {
- realm.setAccountPolicy(null);
- } else if (policy instanceof PasswordPolicy) {
- realm.setPasswordPolicy(null);
- } else if (policy instanceof AuthenticationPolicy) {
- realm.setAuthenticationPolicy(null);
- }
- });
-
- resourceDAO.findByPolicy(policy).forEach(resource -> {
- if (policy instanceof AccountPolicy) {
- resource.setAccountPolicy(null);
- } else if (policy instanceof PasswordPolicy) {
- resource.setPasswordPolicy(null);
- } else if (policy instanceof PullPolicy) {
- resource.setPullPolicy(null);
- } else if (policy instanceof PushPolicy) {
- resource.setPushPolicy(null);
- } else if (policy instanceof AuthenticationPolicy) {
- resource.setAuthenticationPolicy(null);
- } else if (policy instanceof AccessPolicy) {
- resource.setAccessPolicy(null);
- }
- });
+ if (!(policy instanceof AccessPolicyTO)) {
+ realmDAO.findByPolicy(policy).forEach(realm -> {
+ if (policy instanceof AccountPolicy) {
+ realm.setAccountPolicy(null);
+ } else if (policy instanceof PasswordPolicy) {
+ realm.setPasswordPolicy(null);
+ } else if (policy instanceof AuthenticationPolicy) {
+ realm.setAuthenticationPolicy(null);
+ }
+ });
+ }
+
+ if (!(policy instanceof AuthenticationPolicy) && !(policy instanceof AccessPolicyTO)) {
+ resourceDAO.findByPolicy(policy).forEach(resource -> {
+ if (policy instanceof AccountPolicy) {
+ resource.setAccountPolicy(null);
+ } else if (policy instanceof PasswordPolicy) {
+ resource.setPasswordPolicy(null);
+ } else if (policy instanceof PullPolicy) {
+ resource.setPullPolicy(null);
+ } else if (policy instanceof PushPolicy) {
+ resource.setPushPolicy(null);
+ }
+ });
+ }
entityManager().remove(policy);
}
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/authentication/AbstractClientApp.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/authentication/AbstractClientApp.java
index 58ae710..4ad3910 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/authentication/AbstractClientApp.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/authentication/AbstractClientApp.java
@@ -41,7 +41,6 @@ public class AbstractClientApp extends AbstractGeneratedKeyEntity implements Cli
@Column
private String description;
- @Column(nullable = false)
@ManyToOne(fetch = FetchType.EAGER)
private JPAAuthenticationPolicy authenticationPolicy;
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java
index 64a150c..ef97aa6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/resource/JPAExternalResource.java
@@ -53,8 +53,6 @@ import org.apache.syncope.core.persistence.jpa.validation.entity.ExternalResourc
import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.core.persistence.api.entity.AnyType;
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.AuthenticationPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAccountPolicy;
@@ -66,8 +64,6 @@ import org.apache.syncope.core.persistence.api.entity.policy.PushPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
import org.apache.syncope.core.persistence.jpa.entity.AbstractProvidedKeyEntity;
import org.apache.syncope.core.persistence.jpa.entity.JPAImplementation;
-import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAccessPolicy;
-import org.apache.syncope.core.persistence.jpa.entity.policy.JPAAuthenticationPolicy;
import org.apache.syncope.core.persistence.jpa.entity.policy.JPAPushPolicy;
import org.identityconnectors.framework.common.objects.ObjectClass;
@@ -140,12 +136,6 @@ public class JPAExternalResource extends AbstractProvidedKeyEntity implements Ex
@ManyToOne(fetch = FetchType.EAGER)
private JPAPushPolicy pushPolicy;
- @ManyToOne(fetch = FetchType.EAGER)
- private JPAAuthenticationPolicy authenticationPolicy;
-
- @ManyToOne(fetch = FetchType.EAGER)
- private JPAAccessPolicy accessPolicy;
-
@ManyToOne
private JPAImplementation provisionSorter;
@@ -343,28 +333,6 @@ public class JPAExternalResource extends AbstractProvidedKeyEntity implements Ex
}
@Override
- public AuthenticationPolicy getAuthenticationPolicy() {
- return authenticationPolicy;
- }
-
- @Override
- public void setAuthenticationPolicy(final AuthenticationPolicy authenticationPolicy) {
- checkType(authenticationPolicy, JPAAuthenticationPolicy.class);
- this.authenticationPolicy = (JPAAuthenticationPolicy) authenticationPolicy;
- }
-
- @Override
- public AccessPolicy getAccessPolicy() {
- return accessPolicy;
- }
-
- @Override
- public void setAccessPolicy(final AccessPolicy accessPolicy) {
- checkType(accessPolicy, JPAAccessPolicy.class);
- this.accessPolicy = (JPAAccessPolicy) accessPolicy;
- }
-
- @Override
public Implementation getProvisionSorter() {
return provisionSorter;
}
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 560c330..1556977 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -55,7 +55,7 @@ under the License.
<!-- access policies -->
<Implementation id="MyDefaultAccessPolicyConf" type="ACCESS_POLICY_CONFIGURATIONS" engine="JAVA"
- body='{"@class":"org.apache.syncope.common.lib.authentication.DefaultAccessPolicyConf","name":"MyDefaultAccessPolicyConf","enabled":true,"singleSignOnEnabled":true}'/>
+ body='{"@class":"org.apache.syncope.common.lib.access.DefaultAccessPolicyConf","name":"MyDefaultAccessPolicyConf","enabled":true,"singleSignOnEnabled":true}'/>
<AccessPolicy id="419935c7-deb3-40b3-8a9a-683037e523a2" name="MyDefaultAccessPolicyConf"
description="an access policy" />
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..5e9e512 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
@@ -291,11 +291,15 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
policyTO.setKey(policy.getKey());
policyTO.setDescription(policy.getDescription());
- for (ExternalResource resource : resourceDAO.findByPolicy(policy)) {
- policyTO.getUsedByResources().add(resource.getKey());
+ if (!(policy instanceof AuthenticationPolicy) && !(policy instanceof AccessPolicyTO)) {
+ for (ExternalResource resource : resourceDAO.findByPolicy(policy)) {
+ policyTO.getUsedByResources().add(resource.getKey());
+ }
}
- for (Realm realm : realmDAO.findByPolicy(policy)) {
- policyTO.getUsedByRealms().add(realm.getFullPath());
+ if (!(policy instanceof AccessPolicyTO)) {
+ for (Realm realm : realmDAO.findByPolicy(policy)) {
+ policyTO.getUsedByRealms().add(realm.getFullPath());
+ }
}
}
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
index b17517e..34fd19b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
@@ -27,7 +27,6 @@ import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.keymaster.client.api.ConfParamOps;
import org.apache.syncope.common.lib.SyncopeClientCompositeException;
import org.apache.syncope.common.lib.SyncopeClientException;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
@@ -61,8 +60,6 @@ import org.apache.syncope.core.persistence.api.entity.Entity;
import org.apache.syncope.core.persistence.api.entity.Implementation;
import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
-import org.apache.syncope.core.persistence.api.entity.policy.AccessPolicy;
-import org.apache.syncope.core.persistence.api.entity.policy.AuthenticationPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PullPolicy;
import org.apache.syncope.core.persistence.api.entity.policy.PushPolicy;
import org.apache.syncope.core.persistence.api.entity.resource.Item;
@@ -99,9 +96,6 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
private AnyTypeClassDAO anyTypeClassDAO;
@Autowired
- private ConfParamOps confParamOps;
-
- @Autowired
private ImplementationDAO implementationDAO;
@Autowired
@@ -360,12 +354,6 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
resource.setPushPolicy(resourceTO.getPushPolicy() == null
? null : (PushPolicy) policyDAO.find(resourceTO.getPushPolicy()));
- resource.setAuthenticationPolicy(resourceTO.getAuthenticationPolicy() == null
- ? null : (AuthenticationPolicy) policyDAO.find(resourceTO.getAuthenticationPolicy()));
-
- resource.setAccessPolicy(resourceTO.getAccessPolicy() == null
- ? null : (AccessPolicy) policyDAO.find(resourceTO.getAccessPolicy()));
-
if (resourceTO.getProvisionSorter() == null) {
resource.setProvisionSorter(null);
} else {
@@ -695,12 +683,6 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
resourceTO.setPushPolicy(resource.getPushPolicy() == null
? null : resource.getPushPolicy().getKey());
- resourceTO.setAuthenticationPolicy(resource.getAuthenticationPolicy() == null
- ? null : resource.getAuthenticationPolicy().getKey());
-
- resourceTO.setAccessPolicy(resource.getAccessPolicy() == null
- ? null : resource.getAccessPolicy().getKey());
-
resourceTO.setProvisionSorter(resource.getProvisionSorter() == null
? null : resource.getProvisionSorter().getKey());
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SAML2SPITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SAML2SPITCase.java
index 775fdcb..95dac54 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SAML2SPITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SAML2SPITCase.java
@@ -18,6 +18,12 @@
*/
package org.apache.syncope.fit.core;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+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.client.SAML2ServiceProviderTO;
+import org.apache.syncope.common.lib.types.PolicyType;
import org.apache.syncope.fit.AbstractITCase;
import org.junit.jupiter.api.Test;
@@ -42,4 +48,29 @@ public class SAML2SPITCase extends AbstractITCase {
public void delete() {
}
+
+ private SAML2ServiceProviderTO buildSAML2SP() {
+ AuthenticationPolicyTO authPolicyTO = new AuthenticationPolicyTO();
+ authPolicyTO.setKey("AuthPolicyTest_" + getUUIDString());
+ authPolicyTO.setDescription("Authentication Policy");
+ authPolicyTO = createPolicy(PolicyType.AUTHENTICATION, authPolicyTO);
+ assertNotNull(authPolicyTO);
+
+ AccessPolicyTO accessPolicyTO = new AccessPolicyTO();
+ accessPolicyTO.setKey("AccessPolicyTest_" + getUUIDString());
+ accessPolicyTO.setDescription("Access policy");
+ accessPolicyTO = createPolicy(PolicyType.ACCESS, accessPolicyTO);
+ assertNotNull(accessPolicyTO);
+
+ SAML2ServiceProviderTO saml2spto = new SAML2ServiceProviderTO();
+ saml2spto.setName("ExampleSAML2SP_" + getUUIDString());
+ saml2spto.setDescription("Example SAML 2.0 service provider");
+ saml2spto.setEntityId("SAML2SPEntityId_" + getUUIDString());
+ saml2spto.setMetadataLocation("file:./test");
+ saml2spto.setAuthenticationPolicy(authPolicyTO);
+ saml2spto.setAccessPolicy(accessPolicyTO);
+
+ return saml2spto;
+ }
+
}