Skip to content

Commit 88c9638

Browse files
committed
fix: ajust customObjectClass usage in non-ldap backends
1 parent fdf9c7b commit 88c9638

File tree

3 files changed

+31
-27
lines changed

3 files changed

+31
-27
lines changed

casa/app/src/main/java/org/gluu/casa/core/PersistenceService.java

+24-19
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import io.jans.orm.PersistenceEntryManager;
77
import io.jans.orm.PersistenceEntryManagerFactory;
8+
import io.jans.orm.ldap.impl.LdapEntryManagerFactory;
89
import io.jans.orm.ldap.operation.LdapOperationService;
910
import io.jans.orm.model.PersistenceConfiguration;
1011
import io.jans.orm.model.SearchScope;
@@ -340,7 +341,7 @@ private boolean loadApplianceSettings(Properties properties) {
340341

341342
boolean success = false;
342343
try {
343-
loadASSettings(properties.getProperty("jansAuth_ConfigurationEntryDN"));
344+
loadASSettings(properties.getProperty("jansAuth_ConfigurationEntryDN"), properties.getProperty("persistence.type"));
344345
rootDn = "o=jans";
345346
success = true;
346347

@@ -354,27 +355,31 @@ private boolean loadApplianceSettings(Properties properties) {
354355

355356
}
356357

357-
private void loadASSettings(String dn) throws Exception {
358+
private void loadASSettings(String dn, String persistenceType) throws Exception {
358359

359360
ASConfiguration conf = get(ASConfiguration.class, dn);
360-
dynamicConfig = mapper.readTree(conf.getJansConfStatic());
361-
staticConfig = mapper.readTree(conf.getJansConfDyn());
362-
363-
personCustomObjectClasses = Optional.ofNullable(dynamicConfig.get("personCustomObjectClassList"))
364-
.map(node -> {
365-
try {
366-
Set<String> ocs = new HashSet<>();
367-
Iterator<JsonNode> it = node.elements();
368-
while (it.hasNext()) {
369-
ocs.add(it.next().asText());
361+
dynamicConfig = mapper.readTree(conf.getJansConfDyn());
362+
staticConfig = mapper.readTree(conf.getJansConfStatic());
363+
364+
if (persistenceType.equals(LdapEntryManagerFactory.PERSISTENCE_TYPE)) {
365+
366+
personCustomObjectClasses = Optional.ofNullable(dynamicConfig.get("personCustomObjectClassList"))
367+
.map(node -> {
368+
try {
369+
List<String> ocs = new ArrayList<>();
370+
node.elements().forEachRemaining(e -> ocs.add(e.asText()));
371+
372+
return Set.copyOf(ocs);
373+
} catch (Exception e) {
374+
logger.error(e.getMessage());
375+
return null;
370376
}
371-
return ocs;
372-
} catch (Exception e) {
373-
logger.error(e.getMessage());
374-
return null;
375-
}
376-
})
377-
.orElse(Collections.singleton("gluuCustomPerson"));
377+
})
378+
.orElse(Collections.singleton("jansCustomPerson"));
379+
}
380+
if (personCustomObjectClasses == null) {
381+
personCustomObjectClasses = Collections.emptySet();
382+
}
378383

379384
}
380385

casa/app/src/main/java/org/gluu/casa/core/model/ASConfiguration.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ public class ASConfiguration extends Entry {
1616
private String jansConfStatic;
1717

1818
public String getJansConfStatic() {
19-
return jansConfDyn;
19+
return jansConfStatic;
2020
}
2121

2222
public String getJansConfDyn() {
23-
return jansConfStatic;
23+
return jansConfDyn;
2424
}
2525

2626
public void setJansConfDyn(String jansConfDyn) {

casa/shared/src/main/java/org/gluu/casa/core/model/BasePerson.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.jans.orm.annotation.DataEntry;
77
import io.jans.orm.annotation.ObjectClass;
88

9+
import java.util.HashSet;
910
import java.util.Set;
1011

1112
import org.gluu.casa.misc.Utils;
@@ -28,12 +29,10 @@ public class BasePerson extends InumEntry {
2829

2930
static {
3031
IPersistenceService ips = Utils.managedBean(IPersistenceService.class);
31-
if (ips != null) {
32-
Set<String> ocs = ips.getPersonOCs();
33-
ocs.remove("top");
34-
ocs.remove("gluuPerson");
35-
setCustomObjectClasses(ocs.toArray(new String[0]));
36-
}
32+
Set<String> ocs = new HashSet<>(ips.getPersonOCs());
33+
ocs.remove("top");
34+
ocs.remove("jansPerson");
35+
setCustomObjectClasses(ocs.toArray(new String[0]));
3736
}
3837

3938
public String getUid() {

0 commit comments

Comments
 (0)