How to use Spring Ldap Authentication
ldap, spring, spring-ldap
Solution
I found these article helpful for setting up login form with spring security, however, they do not use jsf:
http://www.mkyong.com/spring-security/spring-security-hello-world-example/ http://www.mkyong.com/spring-security/spring-security-form-login-example/
and found this article helpful for using ldap as authentication provider, it does not use ldapTemplate, but uses the spring-security configurations (spring-security.xml in the article)
http://krams915.blogspot.com/2011/01/spring-security-mvc-using-ldap.html
Problem
In my current project, I have to implement LDAP authentication. I am using JSF 2.2, primefaces and Spring 4.0 and spring-ldap-core 1.3.2 and spring-security-ldap-3.2.0. Below are the work till now I have done to achieve: Spring-Ldap.xml ``` <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"> <property name="url" value="ldap://mumcXXXXXXX" /> <property name="base" value="dc=ad,dc=XXX,dc=com"/> <property name="userDn" value="XXXX@ad.XXX.com" /> <property name="password" value="XXXX" /> </bean> <bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate"> <constructor-arg ref="contextSource" /> </bean> <bean id="ldapContact" class="com.csap.research.LDAPContactDAO"> <property name="ldapTemplate" ref="ldapTemplate" /> </bean> ``` My LdapContactDao ``` public boolean login(String username, String password) { AndFilter filter = new AndFilter(); ldapTemplate.setIgnorePartialResultException(true); filter.and(new EqualsFilter("userPrincipalName", username+"@ad.cXXX.com")); return ldapTemplate.authenticate("", filter.toString(), password); } ``` Here username and password are coming from Login screen as inputs. My problem is its very hardcoded. I dont want to hardcode username and password in Spring-Ldap.xml , So there was a suggestion to use Spring-security-Ldap here Spring LdapAuthentication and Load roles from local database but I was unable to understand it. My question was how I can achieve dynamic integration of Ldap with spring and corse JSF i am using as a front-end controller. Any help would be great.