免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2333 | 回复: 0
打印 上一主题 下一主题

[ldap] ldap :Object class violation [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-24 06:47 |只看该作者 |倒序浏览
in <<rofessional linux programming>;>;,I ran into a prolem when build the program which gived by the book in chapter 7.6.1:#include<stdio.h>;
#include<stdlib.h>;
#include<unistd.h>;
#include<string.h>;

#include<lber.h>;
#include<ldap.h>;

int main()
{
LDAP *ld;
int res;

int authmethod = LDAP_AUTH_SIMPLE;
char *ldap_host = "localhost";
char *user_dn ="cn=root,o=hfut,c=edu.cn";
char *user_pw ="123456!";

char *new_dn ="cn=Jenny Stones,ou=People,o=hfut,c=edu.cn";

char *cn_vals[]={"Jenny Stones", NULL};
char *sn_vals[]={"Stones", NULL};
char *givenname_vals[] = {"Jenny", NULL};
char *uid_vals[] = {"stonesj", NULL};
char *title_vals[] = {"rogrammer", NULL};
char *objectClass_vals[] = {"top","person", NULL};
char *ou_vals[] = {"Development","eople", NULL};

LDAPMod cn_attribute,sn_attribute,givenname_attribute,uid_attribute,
title_attribute,objectClass_attribute,ou_attribute;

LDAPMod *mods;

cn_attribute.mod_op = LDAP_MOD_ADD;
cn_attribute.mod_type = "cn";
cn_attribute.mod_values = cn_vals;

sn_attribute.mod_op = LDAP_MOD_ADD;
sn_attribute.mod_type = "sn";
sn_attribute.mod_values = sn_vals;

givenname_attribute.mod_op = LDAP_MOD_ADD;
givenname_attribute.mod_type = "givenname";
givenname_attribute.mod_values = givenname_vals;

uid_attribute.mod_op = LDAP_MOD_ADD;
uid_attribute.mod_type = "uid";
uid_attribute.mod_values = uid_vals;

title_attribute.mod_op = LDAP_MOD_ADD;
title_attribute.mod_type = "title";
title_attribute.mod_values = title_vals;

objectClass_attribute.mod_op = LDAP_MOD_ADD;
objectClass_attribute.mod_type= "objectClass";
objectClass_attribute.mod_values = objectClass_vals;

ou_attribute.mod_op = LDAP_MOD_ADD;
ou_attribute.mod_type = "ou";
ou_attribute.mod_values = ou_vals;

mods[0] = &cn_attribute;
mods[1] = &sn_attribute;
mods[2] = &givenname_attribute;
mods[3] = &uid_attribute;
mods[4] = &title_attribute;
mods[5] = &objectClass_attribute;
mods[6] = &ou_attribute;
mods[7] = NULL;

if((ld = ldap_init(ldap_host,LDAP_PORT)) == NULL)
{
perror("Failure of ldap_init";
exit(EXIT_FAILURE);
}
if(ldap_bind_s(ld,user_dn,user_pw,authmethod) != LDAP_SUCCESS)
{
ldap_perror(ld,"Failure of ldap_bind";
exit(EXIT_FAILURE);
}

if(ldap_add_s(ld,new_dn,mods)!= LDAP_SUCCESS){
ldap_perror(ld,"Failure of ldap_bind";
exit(EXIT_FAILURE);
}
res = ldap_unbind_s(ld);
if(res != 0)
{
fprintf(stderr,"ldap_unbind_s failed: %s\n",ldap_err2string(res));
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
}

and the problem is :
Failure of ldap_bind: Object class violation
additional info: entry has no objectClass attribute
[root@LI li]# ./ldap_add_one
Failure of ldap_bind: Object class violation
additional info: attribute 'givenName' not allowed
could someone help me?
thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP