Мы работаем над Spring Boot и oracle LDAP (Oid) с модулем Spring LDAP. Соединение с LDAP с пружиной в порядке, но когда мы хотим создать группу LDAP с методом ldapTemplate.create()
, мы получили эту ошибку от Джексона: пожалуйста, помогите нам, что здесь не так! Спасибо
Ошибка определения типа:[простой тип, класс javax.naming.Name];вложенное исключение - com.fasterxml.jackson.databind.exc.InvalidDefinitionException: невозможно создать экземпляр javax.naming.Name
(создатели, такие как создание по умолчанию, не существуют)
//Group Entry
@Getter
@Setter
@Entry(objectClasses = {"top", "groupOfUniqueNames"}, base = "cn=Groups")
public final class Group {
private static final String BASE_DN = "dc=eis,dc=msc,dc=ir";
@Id
private Name dn;
@Attribute(name="cn")
@DnAttribute("cn")
private String name;
@Attribute(name = "displayName")
private String description;
@Attribute(name = "owner")
private String owner;
@Attribute(name="uniqueMember")
private Set members;
public Group() {
}
public Group(String name, Set members) {
Name dn = LdapNameBuilder.newInstance(BASE_DN)
.add("ou", "groups")
.add("cn", name)
.build();
this.dn = dn;
this.name = name;
this.members = members;
}
public Group(Name dn, String name, String description, String owner, Set members) {
this.dn = dn;
this.name = name;
this.description = description;
this.owner = owner;
this.members = members;
}
public void addMember(Name member) {
if (this.members == null){
this.members = new HashSet<>();
}
members.add(member);
}
public void removeMember(Name member) {
members.remove(member);
}
@Override
public String toString() {
return "Group{" +
"dn=" + dn +
", name='" + name + '\'' +
", members=" + members +
'}';
}
//Service
@Override
public int createOIDGroupByJob(Group group) {
try {
ldapTemplate.create(group);
return 1;
}catch (Exception e){
return 0;
}
}
@PostMapping("/api/ldap/group")
public ResponseEntity<?> add(@RequestBody Group group) {
int retVal = ldapService.createOIDGroupByJob(group);
if (retVal==1) {
return new ResponseEntity<>(HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.EXPECTATION_FAILED);
}
}
//in postman
{
"dn": {
"rdns": [
{
"value": "Groups",
"type": "cn"
},
{
"value": "some data",
"type": "cn"
}
]
},
"fullName": "some data",
"lastName": "some data"
}