[ 
https://issues.apache.org/jira/browse/DIRAPI-293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15922943#comment-15922943
 ] 

Stefan Seelmann commented on DIRAPI-293:
----------------------------------------

The simple API "LdapConnection.bind(name, password)" currently only allows 
valid DN as name.

But you have 2 options.

1) As you already configure the username and password in the 
LdapConnectionConfig you don't need to provide it again:
{noformat}
LdapConnectionConfig config = new LdapConnectionConfig();
config.setLdapHost( serverName);
config.setLdapPort( serverPort );
config.setName( userDN );
config.setCredentials( password );
LdapConnection connection = new LdapNetworkConnection(config);
connection.bind();
assertTrue( connection.isConnected() );
assertTrue( connection.isAuthenticated() );
{noformat}

This works because "LdapConnection.bind()" uses the low-level API, see next.

2) Use the low-level API directly:
{noformat}
    @Test
    public void testSimpleBindActiveDirectory() throws Exception
    {
        BindRequest bindRequest = new BindRequestImpl();
        bindRequest.setName( "[email protected]" );
        bindRequest.setCredentials( "secret" );
        BindResponse bindResponse = connection.bind( bindRequest );

        ResultCodeEnum resultCode = 
bindRequest.getResultResponse().getLdapResult().getResultCode();

        assertEquals( ResultCodeEnum.SUCCESS, resultCode );
        assertTrue( connection.isConnected() );
        assertTrue( connection.isAuthenticated() );
    }
{noformat}

> Unable to connect to an Active Directory server using '[email protected]'. 
> ---------------------------------------------------------------------------
>
>                 Key: DIRAPI-293
>                 URL: https://issues.apache.org/jira/browse/DIRAPI-293
>             Project: Directory Client API
>          Issue Type: Bug
>    Affects Versions: 1.0.0-RC2
>         Environment: Windows 7 Professional 64 bit
>            Reporter: Krishna Mohan
>
> Unable to connect to an Active Directory server using '[email protected]'. 
> For example [email protected]
> Looks like Apache Directory LDAP API expects always DN as name for a bind 
> request.
> Interestingly i was able to connect using Apache Directory Studio. What am I 
> doing wrong in API code?
> Here is the sample code that i tried. Please check the exception stack trace 
> below.
> LdapConnectionConfig config = new LdapConnectionConfig();
> config.setLdapHost( serverName);
> config.setLdapPort( serverPort );
> config.setName( userDN );
> config.setCredentials( password );
> LdapConnection connection = new LdapNetworkConnection(config);
> try {
>       connection.bind(userDN, password);
> } catch (LdapException e) {
>       // TODO Auto-generated catch block
>       e.printStackTrace();
> }
> org.apache.directory.api.ldap.model.exception.LdapInvalidDnException: 
> ERR_04202 A value is missing on some RDN
>       at org.apache.directory.api.ldap.model.name.Dn.<init>(Dn.java:282)
>       at 
> org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:112)
>       at com.actiance.platform.ldap.LDAPClient.<init>(LDAPClient.java:86)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to