I'm getting somewhere, but I think I may be missing a piece of
configuration or doing something incorrect.
My $archiva_home/conf/security.properties file looks like this:
user.manager.impl=ldap
ldap.bind.authenticator.enabled=true
redback.default.admin=admin
redback.default.guest=guest
security.policy.password.expiration.enabled=false
ldap.user.store.enabled=true
ldap.config.hostname=dc02.jiveville.com
ldap.config.port=389
ldap.config.base.dn=OU=JiveUsers,DC=jiveville,DC=com
ldap.config.context.factory=com.sun.jndi.ldap.LdapCtxFactory
ldap
.config
.bind.dn=CN=ldapuser,OU=ServiceAccounts,OU=JiveUsers,DC=jiveville,DC=com
ldap.config.password=********
And my $archiva_home/conf/application.xml file looks like:
<component>
<
role
>
org
.codehaus.plexus.redback.common.ldap.connection.LdapConnectionFactory</
role>
<role-hint>configurable</role-hint>
<
implementation
>
org
.codehaus
.plexus
.redback.common.ldap.connection.ConfigurableLdapConnectionFactory</
implementation>
<description>ldap connection</description>
<configuration>
<hostname>dc02.jiveville.com</hostname>
<port>389</port>
<baseDn>OU=JiveUsers,DC=jiveville,DC=com</baseDn>
<contextFactory>com.sun.jndi.ldap.LdapCtxFactory</
contextFactory>
<password>********</password>
<
bindDn
>CN=ldapuser,OU=ServiceAccounts,OU=JiveUsers,DC=jiveville,DC=com</
bindDn>
</configuration>
</component>
<component>
<role>org.codehaus.plexus.redback.common.ldap.UserMapper</role>
<role-hint>ldap</role-hint>
<implementation>org.codehaus.plexus.redback.common.ldap.LdapUserMapper
</implementation>
<description></description>
<configuration>
<email-attribute>email</email-attribute>
<full-name-attribute>givenName</full-name-attribute>
<password-attribute>userPassword</password-attribute>
<user-id-attribute>cn</user-id-attribute>
<user-base-dn></user-base-dn>
<user-object-class>inetOrgPerson</user-object-class>
</configuration>
</component>
But what I end up with is:
org.codehaus.plexus.redback.common.ldap.connection.LdapException:
Could not connect to the server. [Root exception is
javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308
: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data
525, [EMAIL PROTECTED]
at
org
.codehaus
.plexus
.redback
.common.ldap.connection.LdapConnection.<init>(LdapConnection.java:81)
at
org
.codehaus
.plexus
.redback
.common
.ldap
.connection
.ConfigurableLdapConnectionFactory
.getConnection(ConfigurableLdapConnectionFactory.java:130)
at
org
.codehaus
.plexus
.redback.users.ldap.LdapUserManager.newDirContext(LdapUserManager.java:
338)
at
org
.codehaus
.plexus
.redback.users.ldap.LdapUserManager.findUser(LdapUserManager.java:214)
at
org
.codehaus
.plexus
.redback
.users
.configurable
.ConfigurableUserManager.findUser(ConfigurableUserManager.java:111)
at
org
.codehaus
.plexus
.redback
.xwork
.checks
.security
.GuestUserEnvironmentCheck
.validateEnvironment(GuestUserEnvironmentCheck.java:82)
at org.apache.maven.archiva.web.startup.SecuritySynchronization.executeEnvironmentChecks
(SecuritySynchronization.java:151)
at org.apache.maven.archiva.web.startup.SecuritySynchronization.startup
(SecuritySynchronization.java:125)
at org.apache.maven.archiva.web.startup.ArchivaStartup.contextInitialized
(ArchivaStartup.java:56)
at
org
.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:
539)
at
org.mortbay.jetty.servlet.Context.startContext(Context.java:135)
at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
1216)
at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
509)
at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:447)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at
org
.mortbay
.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
at
org
.mortbay
.jetty
.handler
.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at
org
.mortbay
.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
117)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at
org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:977)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mortbay.start.Main.invokeMain(Main.java:194)
at org.mortbay.start.Main.start(Main.java:509)
at org.mortbay.start.Main.main(Main.java:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:
240)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.naming.AuthenticationException: [LDAP: error code 49
- 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext
error, data 525, [EMAIL PROTECTED]
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3005)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:
2951)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:
2753)
at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2667)
at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:287)
at
com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
at
com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
at
com
.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:
136)
at
com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:
66)
at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at
javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:
82)
at
org
.codehaus
.plexus
.redback
.common.ldap.connection.LdapConnection.<init>(LdapConnection.java:77)
... 36 more
---
Now, I wasn't sure where to put application.xml, so I'm unsure if it
belongs in a different directory. I couldn't find anything in the
Archiva docs or on the Wiki saying where to put that file so I took a
best guess. Also, I am able to connect to the LDAP server using
JXplorer using the same credentials/settings so I know that they are
correct. (It looks like AcceptSecurityContext error, data 525 could
mean "Bad username" according to http://forums.sun.com/thread.jspa?messageID=9941793
-- which if I deliberately use an incorrect username with JXplorer I
get this same error).
Thanks for your help everyone, I sincerely appreciate it!
- Chris
On 6 Aug, 2008, at 4:51 AM, Emmanuel Venisse wrote:
redback 1.0.1 doesn't work well with LDAP and 1.0.2/1.0.3 doesn't
support
LDAPS
Emmanuel
On Wed, Aug 6, 2008 at 1:50 PM, Emmanuel Venisse <[EMAIL PROTECTED]
wrote:
Some components must be declared in application.xml.
Yesterday I added them in comments in trunk
Look at LDAP snippet part in
https://svn.apache.org/repos/asf/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/plexus/application.xml
Emmanuel
On Wed, Aug 6, 2008 at 5:58 AM, Maria Odea Ching
<[EMAIL PROTECTED]>wrote:
---------- Forwarded message ----------
From: Maria Odea Ching <[EMAIL PROTECTED]>
Date: Wed, Aug 6, 2008 at 11:58 AM
Subject: Re: ldap with Archiva
To: [EMAIL PROTECTED]
Hi Marina,
I'll be forwarding this to the archiva users list and we could
continue
the
discussion there :)
Anyway, with redback 1.0.1 (used by archiva 1.0.2 & 1.0.1) I think
you
only
need to configure the security.properties file in order to use
ldap for
authentication. Here's an example config:
user.manager.impl=ldap
ldap.bind.authenticator.enabled=true
ldap.config.hostname=localhost
ldap.config.port=10389
ldap.config.base.dn=dc=redback,dc=plexus,dc=codehaus,dc=org
ldap.config.context.factory=com.sun.jndi.ldap.LdapCtxFactory
ldap.config.bind.dn=uid=admin,ou=system
ldap.config.password=PASSWORD
I'm not sure with redback 1.0.2 (used by archiva 1.1) though if
there are
additional configurations needed after the changes in redback's LDAP
module.
Emmanuel might be able to answer that :)
HTH,
Deng
On Wed, Aug 6, 2008 at 4:58 AM, Marina <[EMAIL PROTECTED]> wrote:
Hi, Maria
I am trying to make ldap authenticated for Archiva. I do not see
any of
examples online showing how to do it.
I wonder if you can give any example.
Is the archiva.xml the only file to change?
Or I have to change other property file?
Could you send me example of those ldap settings for Archiva?
Great Thanks!
Marina