Hi guys,
For anyone else trying to get AD authentication to work i found via tcpdump that the binddn was appending a ',' to the end of the bind. Lucky for me this bug was fixed a few days ago (http://jira.codehaus.org/browse/REDBACK-154 ) which i have tested using the snapshot jar in my current archiva install from http://snapshots.repository.codehaus.org/org/codehaus/redback/redback-co mmon-ldap/1.1-SNAPSHOT/redback-common-ldap-1.1-20080825.034144-2.jar i then added to ~www/.m2/security.properties user.manager.impl=ldap ldap.user.store.enabled=true ldap.bind.authenticator.enabled=true redback.default.admin=xxxx redback.default.guest=xxxx security.policy.password.expiration.enabled=false ldap.config.hostname=xxx.xxx.xxx.xxx ldap.config.port=389 ldap.config.base.dn=OU=xxx,OU=xxx,DC=xxx,DC=xxx ldap.config.context.factory=com.sun.jndi.ldap.LdapCtxFactory ldap.config.bind.dn=cn=xxxx,cn=xxx,dc=xxx,dc=xxx ldap.config.password=xxxxxxxxxxxx ldap.config.mapper.attribute.email=mail ldap.config.mapper.attribute.fullname=name ldap.config.mapper.attribute.user.id=mailNickname ldap.config.mapper.attribute.user.object.class=user And i can confirm that AD authentication is now working! My only problem now is when you goto the site as the default user (guest) and click browse or try a search a lovely NPE stack trace is given: Aug 26, 2008 2:21:02 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet default threw exception java.lang.NullPointerException at org.apache.maven.archiva.security.DefaultUserRepositories.getObservableR epositoryIds(DefaultUserRepositories.java:76) at org.apache.maven.archiva.web.action.BrowseAction.getObservableRepos(Brow seAction.java:131) at org.apache.maven.archiva.web.action.BrowseAction.browse(BrowseAction.jav a:65) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActio nInvocation.java:358) at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultA ctionInvocation.java:218) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:192) at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met hodFilterInterceptor.java:88) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met hodFilterInterceptor.java:88) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at org.apache.maven.archiva.web.interceptor.ConfigurationInterceptor.interc ept(ConfigurationInterceptor.java:51) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementIntercept or.intercept(PolicyEnforcementInterceptor.java:105) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.in tercept(SecureActionInterceptor.java:178) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.ParameterFilterInterceptor.intercept( ParameterFilterInterceptor.java:124) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met hodFilterInterceptor.java:88) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Met hodFilterInterceptor.java:88) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(Fil eUploadInterceptor.java:174) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.inte rcept(DebuggingInterceptor.java:169) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterce ptor.java:151) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInt erceptor.java:31) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept (ExceptionMappingInterceptor.java:186) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.inter cept(AutoLoginInterceptor.java:156) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor. intercept(ForceAdminUserInterceptor.java:76) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvoc ation.java:190) at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.jav a:116) at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(Dispat cherUtils.java:273) at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDisp atcher.java:202) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter. java:118) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.j ava:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:188) at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(Action ContextCleanUp.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1 74) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java: 703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket. java:895) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:689) at java.lang.Thread.run(Thread.java:595) I also found a slight quirk that if I want to associate a role to an AD user i had to click edit roles on the user, then submit (to the empty role list), then open the user again for roles to show and be set. Perhaps i have missed something ? Any ideas would be greatly appreciated! Thankyou Chris Anders
