1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa.outer;
20
21 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
22 import static org.junit.jupiter.api.Assertions.assertNotNull;
23 import static org.junit.jupiter.api.Assertions.assertNull;
24
25 import java.util.UUID;
26 import org.apache.syncope.core.persistence.api.dao.OIDCRPClientAppDAO;
27 import org.apache.syncope.core.persistence.api.dao.RealmDAO;
28 import org.apache.syncope.core.persistence.api.entity.Realm;
29 import org.apache.syncope.core.persistence.api.entity.am.OIDCRPClientApp;
30 import org.apache.syncope.core.persistence.api.entity.policy.AccessPolicy;
31 import org.apache.syncope.core.persistence.api.entity.policy.AttrReleasePolicy;
32 import org.apache.syncope.core.persistence.api.entity.policy.AuthPolicy;
33 import org.apache.syncope.core.persistence.api.entity.policy.TicketExpirationPolicy;
34 import org.apache.syncope.core.persistence.jpa.inner.AbstractClientAppTest;
35 import org.junit.jupiter.api.Test;
36 import org.springframework.beans.factory.annotation.Autowired;
37 import org.springframework.transaction.annotation.Transactional;
38
39 @Transactional("Master")
40 public class PolicyTest extends AbstractClientAppTest {
41
42 @Autowired
43 private OIDCRPClientAppDAO oidcRelyingPartyDAO;
44
45 @Autowired
46 private RealmDAO realmDAO;
47
48 @Test
49 public void authPolicyCanBeNull() {
50 Realm realm = realmDAO.findByFullPath("/odd");
51 assertNotNull(realm);
52
53
54 OIDCRPClientApp rp = entityFactory.newEntity(OIDCRPClientApp.class);
55 rp.setName("OIDC");
56 rp.setClientAppId(UUID.randomUUID().getMostSignificantBits() & Long.MAX_VALUE);
57 rp.setDescription("This is a sample OIDC RP");
58 rp.setClientId(UUID.randomUUID().toString());
59 rp.setClientSecret("secret");
60 rp.setRealm(realm);
61
62 assertDoesNotThrow(() -> {
63 oidcRelyingPartyDAO.save(rp);
64 entityManager().flush();
65 });
66 }
67
68 @Test
69 public void removePolicyFromRealm() {
70 AuthPolicy authPolicy = buildAndSaveAuthPolicy();
71 AccessPolicy accessPolicy = buildAndSaveAccessPolicy();
72 AttrReleasePolicy attrPolicy = buildAndSaveAttrRelPolicy();
73 TicketExpirationPolicy ticketExpirationPolicy = buildAndSaveTicketExpirationPolicy();
74
75 Realm realm = realmDAO.getRoot();
76 realm.setAuthPolicy(authPolicy);
77 realm.setAccessPolicy(accessPolicy);
78 realm.setAttrReleasePolicy(attrPolicy);
79 realm.setTicketExpirationPolicy(ticketExpirationPolicy);
80
81 realm = realmDAO.save(realm);
82 assertNotNull(realm.getAuthPolicy());
83 assertNotNull(realm.getAccessPolicy());
84 assertNotNull(realm.getAttrReleasePolicy());
85
86 policyDAO.delete(authPolicy);
87 policyDAO.delete(accessPolicy);
88 policyDAO.delete(attrPolicy);
89 policyDAO.delete(ticketExpirationPolicy);
90 entityManager().flush();
91
92 realm = realmDAO.getRoot();
93 assertNull(realm.getAuthPolicy());
94 assertNull(realm.getAccessPolicy());
95 assertNull(realm.getAttrReleasePolicy());
96 assertNull(realm.getTicketExpirationPolicy());
97 }
98
99 @Test
100 public void removePolicyFromApps() {
101
102 AccessPolicy accessPolicy = buildAndSaveAccessPolicy();
103 AuthPolicy authPolicy = buildAndSaveAuthPolicy();
104 TicketExpirationPolicy ticketExpirationPolicy = buildAndSaveTicketExpirationPolicy();
105
106
107 OIDCRPClientApp rp = entityFactory.newEntity(OIDCRPClientApp.class);
108 rp.setName("OIDC");
109 rp.setClientAppId(UUID.randomUUID().getMostSignificantBits() & Long.MAX_VALUE);
110 rp.setDescription("This is a sample OIDC RP");
111 rp.setClientId(UUID.randomUUID().toString());
112 rp.setClientSecret("secret");
113 rp.setAccessPolicy(accessPolicy);
114 rp.setAuthPolicy(authPolicy);
115 rp.setTicketExpirationPolicy(ticketExpirationPolicy);
116
117 rp = oidcRelyingPartyDAO.save(rp);
118 assertNotNull(rp.getAuthPolicy());
119 assertNotNull(rp.getAccessPolicy());
120 assertNotNull(rp.getTicketExpirationPolicy());
121
122 policyDAO.delete(accessPolicy);
123 policyDAO.delete(authPolicy);
124 policyDAO.delete(ticketExpirationPolicy);
125 entityManager().flush();
126
127 rp = oidcRelyingPartyDAO.find(rp.getKey());
128 assertNotNull(rp);
129 assertNull(rp.getAuthPolicy());
130 assertNull(rp.getAccessPolicy());
131 assertNull(rp.getTicketExpirationPolicy());
132 }
133 }