Le 19/02/2018 à 16:10, Kevin Hale Boyes a écrit :
> On Mon, Feb 19, 2018 at 7:42 AM, Emmanuel Lécharny <[email protected]>
> wrote:
>>
>> Le 19/02/2018 à 15:18, Kevin Hale Boyes a écrit :
>>> So what I did was write a test program using JNDI and see if I could get
>>> the operational attributes that way.
>>> It didn't work either. I'm able to get the same set of attributes as
>> using
>>> the API library.
>>
>> Ok, so it seems that your LDAP server does not properly handle the
>> special "+" attribute.
>>
>
> Yeah, that's what it looks like but the curious thing is Directory Studio
> is able to get the operational attributes.
It checks if the server supports the feature, and if not, if constructs
an explicit lits of ttributes (as you just did) :
InitializeAttributesRunnable :
public static synchronized void initializeAttributes( IEntry entry,
StudioProgressMonitor monitor )
{
// get user attributes or both user and operational attributes
String[] returningAttributes = null;
LinkedHashSet<String> raSet = new LinkedHashSet<String>();
raSet.add( SchemaConstants.ALL_USER_ATTRIBUTES );
boolean initOperationalAttributes =
entry.getBrowserConnection().isFetchOperationalAttributes()
|| entry.isInitOperationalAttributes();
if ( initOperationalAttributes )
{
if (
entry.getBrowserConnection().getRootDSE().isFeatureSupported(
SchemaConstants.FEATURE_ALL_OPERATIONAL_ATTRIBUTES ) )
{
raSet.add( SchemaConstants.ALL_OPERATIONAL_ATTRIBUTES );
}
else
{
Collection<AttributeType> opAtds =
SchemaUtils.getOperationalAttributeDescriptions( entry
.getBrowserConnection().getSchema() );
Collection<String> atdNames = SchemaUtils.getNames(
opAtds );
raSet.addAll( atdNames );
}
}
>> Which server it is ?
>>
>
> Looks like Active Directory. The attributes shown on the Root DSE show V51,
> V60, V61R2 and ADAM.
Probably the worst so called LDAP servers. The M$ way : embrace, extend
and estinguish...
--
Emmanuel Lecharny
Symas.com
directory.apache.org