Package org.apache.ldap.common.subtree

Examples of org.apache.ldap.common.subtree.SubtreeSpecification



    public void testDefaults() throws Exception
    {
        SubtreeSpecificationModifier modifier = new SubtreeSpecificationModifier();
        SubtreeSpecification ss = modifier.getSubtreeSpecification();
        Name apDn = new LdapName( "ou=system" );
        Name entryDn = new LdapName( "ou=users,ou=system" );
        Attribute objectClasses = new BasicAttribute( "objectClass" );

        assertTrue( evaluator.evaluate( ss, apDn, entryDn, objectClasses ) );
View Full Code Here


    public void testWithBase() throws Exception
    {
        SubtreeSpecificationModifier modifier = new SubtreeSpecificationModifier();
        modifier.setBase( new LdapName( "ou=users" ) );
        SubtreeSpecification ss = modifier.getSubtreeSpecification();
        Name apDn = new LdapName( "ou=system" );
        Name entryDn = new LdapName( "ou=users,ou=system" );
        Attribute objectClasses = new BasicAttribute( "objectClass" );

        assertTrue( evaluator.evaluate( ss, apDn, entryDn, objectClasses ) );
View Full Code Here

    {
        SubtreeSpecificationModifier modifier = new SubtreeSpecificationModifier();
        modifier.setMinBaseDistance( 1 );
        modifier.setMaxBaseDistance( 3 );
        modifier.setBase( new LdapName( "ou=users" ) );
        SubtreeSpecification ss = modifier.getSubtreeSpecification();
        Name apDn = new LdapName( "ou=system" );
        Name entryDn = new LdapName( "ou=users,ou=system" );
        Attribute objectClasses = new BasicAttribute( "objectClass" );

        assertFalse( evaluator.evaluate( ss, apDn, entryDn, objectClasses ) );
View Full Code Here

        chopAfter.add( new LdapName( "ou=twolevels,uid=akarasulu" ) );
        modifier.setChopAfterExclusions( chopAfter );
        modifier.setMinBaseDistance( 1 );
        modifier.setMaxBaseDistance( 3 );
        modifier.setBase( new LdapName( "ou=users" ) );
        SubtreeSpecification ss = modifier.getSubtreeSpecification();
        Name apDn = new LdapName( "ou=system" );
        Name entryDn = new LdapName( "ou=users,ou=system" );
        Attribute objectClasses = new BasicAttribute( "objectClass" );

        assertFalse( evaluator.evaluate( ss, apDn, entryDn, objectClasses ) );
View Full Code Here

        chopBefore.add( new LdapName( "ou=threelevels,ou=twolevels,uid=akarasulu" ) );
        modifier.setChopBeforeExclusions( chopBefore );
        modifier.setMinBaseDistance( 1 );
        modifier.setMaxBaseDistance( 3 );
        modifier.setBase( new LdapName( "ou=users" ) );
        SubtreeSpecification ss = modifier.getSubtreeSpecification();
        Name apDn = new LdapName( "ou=system" );
        Name entryDn = new LdapName( "ou=users,ou=system" );
        Attribute objectClasses = new BasicAttribute( "objectClass" );

        assertFalse( evaluator.evaluate( ss, apDn, entryDn, objectClasses ) );
View Full Code Here

        SubtreeSpecificationModifier modifier = new SubtreeSpecificationModifier();
        modifier.setRefinement( refinement );
        modifier.setMinBaseDistance( 1 );
        modifier.setMaxBaseDistance( 3 );
        modifier.setBase( new LdapName( "ou=users" ) );
        SubtreeSpecification ss = modifier.getSubtreeSpecification();
        Name apDn = new LdapName( "ou=system" );
        Name entryDn = new LdapName( "ou=users,ou=system" );
        Attribute objectClasses = new BasicAttribute( "objectClass", "person" );

        assertFalse( evaluator.evaluate( ss, apDn, entryDn, objectClasses ) );
View Full Code Here

    private boolean matchUserClassSubtree( Name userName, Attributes userEntry, UserClass.Subtree subtree ) throws NamingException
    {
        for( Iterator i = subtree.getSubtreeSpecifications().iterator();
             i.hasNext(); )
        {
            SubtreeSpecification subtreeSpec = ( SubtreeSpecification ) i.next();
            if( subtreeEvaluator.evaluate(
                    subtreeSpec, ROOTDSE_NAME, userName, userEntry.get( "userClass" ) ) )
            {
                return true;
            }
View Full Code Here

            {
                SearchResult result = ( SearchResult ) subentries.next();
                Attributes subentry = result.getAttributes();
                String dn = result.getName();
                String subtree = ( String ) subentry.get( "subtreeSpecification" ).get();
                SubtreeSpecification ss;

                try
                {
                    ss = ssParser.parse( subtree );
                }
View Full Code Here

        {
            String subentryDnStr = ( String ) list.next();
            Name subentryDn = new LdapName( subentryDnStr );
            Name apDn = ( Name ) subentryDn.clone();
            apDn.remove( apDn.size() - 1 );
            SubtreeSpecification ss = ( SubtreeSpecification ) subtrees.get( subentryDn );

            if ( evaluator.evaluate( ss, apDn, dn, objectClasses ) )
            {
                Attribute administrativeRole = nexus.lookup( apDn ).get( "administrativeRole" );
                NamingEnumeration roles = administrativeRole.getAll();
View Full Code Here

             * to add the entry to the DIT.  Thereafter we search out entries
             * to modify the subentry operational attributes of.
             * ----------------------------------------------------------------
             */
            String subtree = ( String ) entry.get( "subtreeSpecification" ).get();
            SubtreeSpecification ss;
            try
            {
                ss = ssParser.parse( subtree );
            }
            catch ( Exception e )
            {
                String msg = "Failed while parsing subtreeSpecification for " + upName;
                log.warn( msg );
                throw new LdapInvalidAttributeValueException( msg, ResultCodeEnum.INVALIDATTRIBUTESYNTAX );
            }
            subtrees.put( normName.toString(), ss );
            next.add( upName, normName, entry );

            /* ----------------------------------------------------------------
             * Find the baseDn for the subentry and use that to search the tree
             * while testing each entry returned for inclusion within the
             * subtree of the subentry's subtreeSpecification.  All included
             * entries will have their operational attributes merged with the
             * operational attributes calculated above.
             * ----------------------------------------------------------------
             */
            Name baseDn = ( Name ) apName.clone();
            baseDn.addAll( ss.getBase() );

            ExprNode filter = new PresenceNode( "objectclass" );
            SearchControls controls = new SearchControls();
            controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
            controls.setReturningAttributes( new String[] { "+", "*" } );

            NamingEnumeration subentries = nexus.search( baseDn, factoryCfg.getEnvironment(), filter, controls );
            while ( subentries.hasMore() )
            {
                SearchResult result = ( SearchResult ) subentries.next();
                Attributes candidate = result.getAttributes();
                Name dn = dnParser.parse( result.getName() );

                if ( evaluator.evaluate( ss, apName, dn, candidate.get( "objectClass" ) ) )
                {
                    nexus.modify( dn, getOperationalModsForAdd( candidate, operational ) );
                }
            }
        }
        else
        {
            Iterator list = subtrees.keySet().iterator();
            while ( list.hasNext() )
            {
                String subentryDnStr = ( String ) list.next();
                Name subentryDn = new LdapName( subentryDnStr );
                Name apDn = ( Name ) subentryDn.clone();
                apDn.remove( apDn.size() - 1 );
                SubtreeSpecification ss = ( SubtreeSpecification ) subtrees.get( subentryDn );

                if ( evaluator.evaluate( ss, apDn, normName, objectClasses ) )
                {
                    Attribute administrativeRole = nexus.lookup( apDn ).get( "administrativeRole" );
                    NamingEnumeration roles = administrativeRole.getAll();
View Full Code Here

TOP

Related Classes of org.apache.ldap.common.subtree.SubtreeSpecification

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.