I want to enable LDAP user authentication for Roller 5.0.3. There are some 
relating tutorials for Roller 4 but seems not working on the new spring 
security framework. I find some spring security 2 configuration examples, 
trying to figure it out with no success. Hoping someone will help me...
this is my progress so far: I'm using an openldap server with some testing 
account and added some properties in roller custom setting 
file:users.sso.enabled=trueusers.sso.autoProvision.enabled=trueusers.sso.registry.ldap.attributes.name=uidusers.sso.registry.ldap.attributes.screenname=cn
then I modified the security.xml:    <beans:bean id="contextSource" 
class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">   
     <beans:constructor-arg value="ldap://localhost:389/dc=test,dc=com"; />      
  <beans:property name="userDn" value="cn=Manager,dc=test,dc=com" />        
<beans:property name="password" value="111111" />    </beans:bean>    
<beans:bean id="ldapAuthProvider" 
class="org.springframework.security.providers.ldap.LdapAuthenticationProvider"> 
       <custom-authentication-provider />        <beans:constructor-arg>        
    <beans:bean 
class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator">
                <beans:constructor-arg ref="contextSource" />                
<beans:property name="userSearch" ref="userSearch" />            </beans:bean>  
      </beans:constructor-arg>        <beans:constructor-arg>            
<beans:bean 
class="org.springframework.security.ldap.populator.DefaultLdapAuthoritiesPopulator">
                <beans:constructor-arg ref="contextSource" />                
<beans:constructor-arg value="ou=Tester" />                <beans:property 
name="searchSubtree" value="false" />                <beans:property 
name="defaultRole" value="register" />                <beans:property 
name="convertToUpperCase" value="false" />                <beans:property 
name="groupRoleAttribute" value=""/>                <beans:property 
name="rolePrefix" value="" />            </beans:bean>        
</beans:constructor-arg>    </beans:bean>    <beans:bean id="userSearch" 
class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">     
   <beans:constructor-arg index="0" value="" />        <beans:constructor-arg 
index="1" value="(uid={0})" />        <beans:constructor-arg index="2" 
ref="contextSource" />        <beans:property name="searchSubtree" value="true" 
/>    </beans:bean>
(Deploying roller with this configuration will get error message 
"java.lang.NoClassDefFoundError: com.sun.jndi.ldap.ctl.ResponseControlFactory", 
I found a solution at 
http://www.chrissearle.org/2007/08/30/spring-ldap_and_NoClassDefFoundError_com_sun_jndi_ldap_ctl_ResponseControlFactory/)
Now when using ldap username/password the page will jump to 
roller_j_security_check and display following error message: 500Filter 
execution threw an exceptionRoller has encountered and logged an unexpected 
exception.
Using a wrong password will get the same error message, If entering a 
non-existed username/password roller will display "Wrong username and password 
combination".
There are relating search messages in openldap.log, maybe I just need some 
tweak to fix the problem? Does anyone have any suggestions for solutions? 
thanks in advance.                                           

Reply via email to