Ubuntu下的LDAP的搭建与Spring LDAP编程

最近要装LDAP.
不得不感叹wiki.ubuntu.org.cn真是非常的强大,要啥有啥。
按照上面的步骤,OpenLDAP Server就很快搭好了,
自动搜索到了我的本地域名,
设置admin密码
如丝般柔顺。。。
(其实也不尽然,我家的服务器按照上面的步骤,竟然没有最重要的slapd.conf,
郁闷死我了)
 
然后就是找一个Administrator
网上的资源纷繁复杂,让我找了好半天
对LDAP的完全不了解-,-,主要是对Dn,Cn的混淆,
让我尝试了很多客户端都放弃了。。。。
(其实Dn=Base+Cn,皑皑,后来才知道)
最后选择了phpldapadmin,简洁,明了,
主要是在网上搜到了可以直接设置cn,,,
第一个让我登录成功的Administrator….感动了
sudo apt-get install phpldapadmin
 
稍微玩了一把LDAP
感觉就是针对公司机构,人事特别设计的一颗对象树。
Root就是Base Domain
地下可以设置人员CN,机构OU和其他各种对象。
Email Account,User Account,一应俱全。
最主要的是还可以自己Customize,复选多种objectclass来订制节点属性。
其实用处不大,可能主要是已经应用非常广泛了吧。
 
OK,玩好了最大的用处当然是集成到我的应用中。
用过了Spring以后就难以割舍,集成太方便了,inject就有了。
Java Main写的Demo Code可以很方便的intergrate到其他web application中。
所以Spring LDAP当然就是我的不二选择。
 
说实话Spring LDAP非常的贴心,
就怕你不会用,基本的用法完全类似JDBCTemplate(当然还有Triditional的用法,没来得及看)
三下五除二就搞定了(当然除了可怕的dn,cn)….
public class UserDaoLdapImpl {
    private LdapTemplate ldapTemplate;
    public LdapTemplate getLdapTemplate() {
        return ldapTemplate;
    }
    public void setLdapTemplate(LdapTemplate ldapTemplate) {
        this.ldapTemplate = ldapTemplate;
    }
    public List GetAllPersonNames(){
        return this.ldapTemplate.search("","(&(objectclass=person)(cn=*ny*))",
                new AttributesMapper(){
                    public Object mapFromAttributes(Attributes attrs)
                        throws NamingException{
                        return attrs.get("cn").get();
                    }
        });
    }
}
<beans>
    <bean id="contextSource"
        class="org.springframework.ldap.core.support.LdapContextSource">
        <property name="url" value="ldap://XXXX:389" />
        <property name="base" value="dc=xiluo2,dc=com" />
        <property name="userDn" value="cn=admin,dc=xiluo2,dc=com" />
        <property name="password" value="xiuxiu" />
    </bean>
    <bean id="ldapTemplate"
        class="org.springframework.ldap.core.LdapTemplate">
        <constructor-arg ref="contextSource" />
    </bean>
    <bean id="userDao" class="hellospringldap.UserDaoLdapImpl">
        <property name="ldapTemplate">
            <ref bean="ldapTemplate" />
        </property>
    </bean>
</beans>
 
这里还要赞美以下Netbeans
直接建立Web Application就可以支持Spring, Hibernate(虽然没用上)
然后方便的添加Spring LDAP的Jar和beans申明,OK,搞定了。
 
最后就是LDAP和Call Manager的intergration.
1)System->LDAP System,选择类型OpenLDAP
2)System->LDAP Directory,设置Base,IP,port,Username,password(注意cn,dn…)
OK,搞定,Corporation Directory就可以用了。
 

 

无觅相关文章插件,快速提升流量