spring mvc+ldap

1 篇文章 0 订阅
1 篇文章 0 订阅

 前几天遇到一个项目,是关于ldap的。我们的框架使用的是springMVC,于是便找了一下找了一些相关的内容,在项目中融入了ldap;

开发环境:myeclipse8.6+tomcat6.0+jdk1.6+ mysql +OpenLDAP  win7

首先需要一些ldap的jar包spring-ldap-1.3.0.RELEASE-all.jar,至于spring的jar包就不说了。

然后配置application.xml配置文件:

a.首先是数据库配置信息,mysql与ldap:

 <!-- 数据库配置信息 -->
    <bean id="propertyConfigurer"  
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="locations">  
      <list>  
         <value>classpath:jdbc.properties</value>  
         <value>classpath:ldap.properties</value>  
       </list>  
   </property>  
</bean>  

        b.然后配置ldap服务器信息,同jdbc配置

<!-- ldap服务配置 -->
  <bean id="contextSource"  
        class="org.springframework.ldap.core.support.LdapContextSource">  
        <property name="url" value="${urls}" />  
        <property name="base" value="${basepath}" />  
        <property name="userDn" value="${userDn}" />  
        <property name="password" value="${password}" />  
    </bean>  

<!--ldap模板配置-->

       <bean id="ldapTemplate"  
        class="org.springframework.ldap.core.LdapTemplate">  
        <constructor-arg ref="contextSource" />  
    </bean>  

 

ok,以上就是application.xml中的配置,进行如上配置基本就ok了可以使用了。下面就可是使用啦:

首先要配置ldap.properties文件,一下是我的ldap配置信息

urls=ldap://192.168.1.188:389
userDn=cn=root,dc=ncs,dc=com,dc=cn
password=111111
basepath=dc=ncs,dc=com,dc=cn


Manager层,我把要从ldap取出的信息设置成了对象,这样就比较好操作:

       @Repository
public class LdapUserManager {
private LdapTemplate ldapTemplate;
public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}
 
//获取所有的用户信息,根据filter条件
@SuppressWarnings("unchecked")
public List<LdapUser> getAllUsers() {
EqualsFilter filter = new EqualsFilter("objectclass", "ncsUser");
return ldapTemplate.search(DistinguishedName.EMPTY_PATH, filter.encode(), new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs) throws NamingException {
//取出信息放入到实体类中,返回

LdapUser ldapuser = new LdapUser();
ldapuser.setGivenname(attrs.get("ncsusername").get()+"");
ldapuser.setUserPassword(attrs.get("ncsuserpassword").get()+"");
return ldapuser;
}
});
}
}

 service层就是简单的调用Manager层了:

@Service
  public class LdapUserServiceImpl  extends BaseService{
//
public List<LdapUser> getAllUsers() {
return ldapUserManager.getAllUsers();
}

  }

action层调用,并打印出获取的信息。

@Controller
@RequestMapping("/ldapUser.do") 
public class LdapUserAction {
@Autowired
    public LdapUserServiceImpl ldapUserServiceImpl;   
private Logger log = Logger.getLogger(LdapGroupAction.class);


@RequestMapping(params = "method=getldapuser")
public  ModelAndView  getLdapuser(HttpServletRequest request,HttpServletResponse response) throws IOException{
List<LdapUser> listuser = ldapUserServiceImpl.getAllUsers();
for(int i=0;i<listuser.size();i++){
LdapUser ldapUser = listuser.get(i);
log.debug("Givenname:"+ldapUser.getGivenname());
log.debug("UserPassword:"+ldapUser.getUserPassword());
}
return null; 
}


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值