Apache Directory Project - 1.5.2 ApacheDS() loadLdifs Problem

This is Interesting: Free IT Magazines  
Home > Archive > Apache Directory Project > December 2007 > 1.5.2 ApacheDS() loadLdifs Problem





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author 1.5.2 ApacheDS() loadLdifs Problem
Simon.Temple-bNHniqfy2KDk7dXyY5I9mNBPR1lH4CV8@

2007-12-21, 7:11 am

Hi

I can't start a 1.5.2 server via the ApacheDS class:

LdapPrincipal admin = new LdapPrincipal( new LdapDN( ServerDNConstants.ADMIN_SYSTEM_DN ), AuthenticationLevel.STRONG );

java.lang.IllegalStateException: Names used for principals must be normalized!
at org.apache.directory.server.core.authn.LdapPrincipal.<init>(LdapPrincipal.java:72)
at org.apache.directory.server.configuration.ApacheDS.loadLdifs(ApacheDS.java:321)
at org.apache.directory.server.configuration.ApacheDS.startup(ApacheDS.java:95)

Will it work if the code is changed to use ServerDNConstants.ADMIN_SYSTEM_DN_NORMALIZED?


- SimonT
Simon.Temple-bNHniqfy2KDk7dXyY5I9mNBPR1lH4CV8@

2007-12-21, 7:11 am

Update:

Changing the code to this seems to work:

LdapDN dn = new LdapDN();
dn.add( ServerDNConstants.ADMIN_SYSTEM_DN );
LdapPrincipal admin = new LdapPrincipal( dn, AuthenticationLevel.STRONG );

this is because the empty constructor sets isNormailized to true!

This smells like a work-around not a fix... anyone care to comment?

Thanks

- SimonT

21 December 2007 10:52
To: dev-aYN4UCa7k1r1N9kud6OZbmD2FQJk+8+b@public.gmane.org
cc:
From: Simon.Temple-bNHniqfy2KDk7dXyY5I9mNBPR1lH4CV8@public.gmane.org
Subject: 1.5.2 ApacheDS() loadLdifs Problem


Hi

I can't start a 1.5.2 server via the ApacheDS class:

LdapPrincipal admin = new LdapPrincipal( new LdapDN( ServerDNConstants.ADMIN_SYSTEM_DN ), AuthenticationLevel.STRONG );

java.lang.IllegalStateException: Names used for principals must be normalized!
at org.apache.directory.server.core.authn.LdapPrincipal.<init>(LdapPrincipal.java:72)
at org.apache.directory.server.configuration.ApacheDS.loadLdifs(ApacheDS.java:321)
at org.apache.directory.server.configuration.ApacheDS.startup(ApacheDS.java:95)

Will it work if the code is changed to use ServerDNConstants.ADMIN_SYSTEM_DN_NORMALIZED?


- SimonT
Alex Karasulu

2007-12-21, 1:11 pm

There was another thread on exactly this problem. I recommend you proceed
like so for now:

(1) get a handle on the DirectoryService
(2) access the attributeType registry via directoryService.getRegistries
().getAttributeTypeRegistry()
(3) from the attribute type registry access the normalizer map
getNormalizerMap() or something like that
(4) feed this into the dn.normalize() method of the dn you feed into
LdapPrincipal

The reason for all this is that a normalized DN is required in the
LdapPrincipal so the server can properly check and compare DNs for various
housekeeping operations and things like authorization and authentication.
If the DN is not normalized then these operations will not correctly
evaluate. This is why an exception is thrown to stop unsuspecting users.

We do need to figure out a better way to handle this but until then this
sequence above should work.

Alex

On Dec 21, 2007 6:26 AM, <Simon.Temple-bNHniqfy2KDk7dXyY5I9mNBPR1lH4CV8@public.gmane.org> wrote:

> Update:
>
> Changing the code to this seems to work:
>
> LdapDN dn = new LdapDN();
> dn.add( ServerDNConstants.ADMIN_SYSTEM_DN );
> LdapPrincipal admin = new LdapPrincipal( dn, AuthenticationLevel.STRONG);
> this is because the empty constructor sets isNormailized to true!
>
> This smells like a work-around not a fix... anyone care to comment?
>
> Thanks
>
> - SimonT
>
> *21 December 2007 10:52
> To: dev-aYN4UCa7k1r1N9kud6OZbmD2FQJk+8+b@public.gmane.org
> cc:
> From: Simon.Temple-bNHniqfy2KDk7dXyY5I9mNBPR1lH4CV8@public.gmane.org
> Subject: 1.5.2 ApacheDS() loadLdifs Problem*
>
> Hi
>
> I can't start a 1.5.2 server via the ApacheDS class:
>
> LdapPrincipal admin = new LdapPrincipal( new LdapDN(
> ServerDNConstants.ADMIN_SYSTEM_DN ), AuthenticationLevel.STRONG );
>
> java.lang.IllegalStateException: Names used for principals must be
> normalized!
> at org.apache.directory.server.core.authn.LdapPrincipal.<init>(
> LdapPrincipal.java:72)
> at org.apache.directory.server.configuration.ApacheDS.loadLdifs(
> ApacheDS.java:321)
> at org.apache.directory.server.configuration.ApacheDS.startup(
> ApacheDS.java:95)
>
> Will it work if the code is changed to use
> ServerDNConstants.ADMIN_SYSTEM_DN_NORMALIZED?
>
>
> - SimonT
>


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com