Search in sources :

Example 21 with BindRequest

use of org.apache.directory.api.ldap.model.message.BindRequest in project directory-ldap-api by apache.

the class QuirkySchemaTest method createFakeConnection.

private LdapConnection createFakeConnection(final String schemaFileName) {
    return new LdapConnection() {

        @Override
        public void unBind() throws LdapException {
        }

        @Override
        public void setTimeOut(long timeOut) {
        }

        @Override
        public void setSchemaManager(SchemaManager schemaManager) {
        }

        @Override
        public void setBinaryAttributeDetector(BinaryAttributeDetector binaryAttributeDetecter) {
        }

        @Override
        public SearchCursor search(SearchRequest searchRequest) throws LdapException {
            return null;
        }

        @Override
        public EntryCursor search(String baseDn, String filter, SearchScope scope, String... attributes) throws LdapException {
            return null;
        }

        @Override
        public EntryCursor search(Dn baseDn, String filter, SearchScope scope, String... attributes) throws LdapException {
            return null;
        }

        @Override
        public void rename(Dn entryDn, Rdn newRdn, boolean deleteOldRdn) throws LdapException {
        }

        @Override
        public void rename(String entryDn, String newRdn, boolean deleteOldRdn) throws LdapException {
        }

        @Override
        public void rename(Dn entryDn, Rdn newRdn) throws LdapException {
        }

        @Override
        public void rename(String entryDn, String newRdn) throws LdapException {
        }

        @Override
        public void moveAndRename(String entryDn, String newDn, boolean deleteOldRdn) throws LdapException {
        }

        @Override
        public void moveAndRename(Dn entryDn, Dn newDn, boolean deleteOldRdn) throws LdapException {
        }

        @Override
        public void moveAndRename(String entryDn, String newDn) throws LdapException {
        }

        @Override
        public void moveAndRename(Dn entryDn, Dn newDn) throws LdapException {
        }

        @Override
        public void move(Dn entryDn, Dn newSuperiorDn) throws LdapException {
        }

        @Override
        public void move(String entryDn, String newSuperiorDn) throws LdapException {
        }

        @Override
        public ModifyDnResponse modifyDn(ModifyDnRequest modDnRequest) throws LdapException {
            return null;
        }

        @Override
        public ModifyResponse modify(ModifyRequest modRequest) throws LdapException {
            return null;
        }

        @Override
        public void modify(Entry entry, ModificationOperation modOp) throws LdapException {
        }

        @Override
        public void modify(String dn, Modification... modifications) throws LdapException {
        }

        @Override
        public void modify(Dn dn, Modification... modifications) throws LdapException {
        }

        @Override
        public Entry lookup(String dn, Control[] controls, String... attributes) throws LdapException {
            return lookup(new Dn(dn));
        }

        @Override
        public Entry lookup(String dn, String... attributes) throws LdapException {
            return lookup(new Dn(dn));
        }

        @Override
        public Entry lookup(Dn dn, Control[] controls, String... attributes) throws LdapException {
            return lookup(dn);
        }

        @Override
        public Entry lookup(Dn dn, String... attributes) throws LdapException {
            return lookup(dn);
        }

        @Override
        public Entry lookup(String dn) throws LdapException {
            return lookup(new Dn(dn));
        }

        @Override
        public Entry lookup(Dn dn) throws LdapException {
            if (dn.isRootDse()) {
                Entry entry = new DefaultEntry(dn);
                entry.add(SchemaConstants.SUBSCHEMA_SUBENTRY_AT, SCHEMA_DN);
                return entry;
            } else if (dn.toString().equals(SCHEMA_DN)) {
                Entry entry = loadSchemaEntry(schemaFileName);
                return entry;
            } else {
                throw new UnsupportedOperationException("Unexpected DN " + dn);
            }
        }

        @Override
        public void loadSchemaRelaxed() throws LdapException {
        }

        @Override
        public void loadSchema() throws LdapException {
        }

        @Override
        public boolean isRequestCompleted(int messageId) {
            return true;
        }

        @Override
        public boolean isControlSupported(String controlOID) throws LdapException {
            return true;
        }

        @Override
        public boolean isConnected() {
            return true;
        }

        @Override
        public boolean isAuthenticated() {
            return false;
        }

        @Override
        public List<String> getSupportedControls() throws LdapException {
            return null;
        }

        @Override
        public SchemaManager getSchemaManager() {
            return null;
        }

        @Override
        public Entry getRootDse(String... attributes) throws LdapException {
            return lookup(Dn.ROOT_DSE);
        }

        @Override
        public Entry getRootDse() throws LdapException {
            return lookup(Dn.ROOT_DSE);
        }

        @Override
        public LdapApiService getCodecService() {
            return null;
        }

        @Override
        public BinaryAttributeDetector getBinaryAttributeDetector() {
            return null;
        }

        @Override
        public ExtendedResponse extended(ExtendedRequest extendedRequest) throws LdapException {
            return null;
        }

        @Override
        public ExtendedResponse extended(Oid oid, byte[] value) throws LdapException {
            return null;
        }

        @Override
        public ExtendedResponse extended(Oid oid) throws LdapException {
            return null;
        }

        @Override
        public ExtendedResponse extended(String oid, byte[] value) throws LdapException {
            return null;
        }

        @Override
        public ExtendedResponse extended(String oid) throws LdapException {
            return null;
        }

        @Override
        public boolean exists(Dn dn) throws LdapException {
            return false;
        }

        @Override
        public boolean exists(String dn) throws LdapException {
            return false;
        }

        @Override
        public boolean doesFutureExistFor(int messageId) {
            return false;
        }

        @Override
        public DeleteResponse delete(DeleteRequest deleteRequest) throws LdapException {
            return null;
        }

        @Override
        public void delete(Dn dn) throws LdapException {
        }

        @Override
        public void delete(String dn) throws LdapException {
        }

        @Override
        public boolean connect() throws LdapException {
            return true;
        }

        @Override
        public CompareResponse compare(CompareRequest compareRequest) throws LdapException {
            return null;
        }

        @Override
        public boolean compare(Dn dn, String attributeName, byte[] value) throws LdapException {
            return false;
        }

        @Override
        public boolean compare(Dn dn, String attributeName, String value) throws LdapException {
            return false;
        }

        @Override
        public boolean compare(String dn, String attributeName, byte[] value) throws LdapException {
            return false;
        }

        @Override
        public boolean compare(String dn, String attributeName, String value) throws LdapException {
            return false;
        }

        @Override
        public void close() throws IOException {
        }

        @Override
        public BindResponse bind(BindRequest bindRequest) throws LdapException {
            return null;
        }

        @Override
        public void bind(Dn name, String credentials) throws LdapException {
        }

        @Override
        public void bind(Dn name) throws LdapException {
        }

        @Override
        public void bind(String name, String credentials) throws LdapException {
        }

        @Override
        public void bind(String name) throws LdapException {
        }

        @Override
        public void bind() throws LdapException {
        }

        @Override
        public void anonymousBind() throws LdapException {
        }

        @Override
        public AddResponse add(AddRequest addRequest) throws LdapException {
            return null;
        }

        @Override
        public void add(Entry entry) throws LdapException {
        }

        @Override
        public void abandon(AbandonRequest abandonRequest) {
        }

        @Override
        public void abandon(int messageId) {
        }

        @Override
        public boolean compare(String dn, String attributeName, Value value) throws LdapException {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean compare(Dn dn, String attributeName, Value value) throws LdapException {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public BindResponse bind(SaslRequest saslRequest) throws LdapException {
            // TODO Auto-generated method stub
            return null;
        }
    };
}
Also used : SearchRequest(org.apache.directory.api.ldap.model.message.SearchRequest) Modification(org.apache.directory.api.ldap.model.entry.Modification) BindRequest(org.apache.directory.api.ldap.model.message.BindRequest) AbandonRequest(org.apache.directory.api.ldap.model.message.AbandonRequest) DefaultEntry(org.apache.directory.api.ldap.model.entry.DefaultEntry) Dn(org.apache.directory.api.ldap.model.name.Dn) DefaultSchemaManager(org.apache.directory.api.ldap.schema.manager.impl.DefaultSchemaManager) SchemaManager(org.apache.directory.api.ldap.model.schema.SchemaManager) ModifyDnRequest(org.apache.directory.api.ldap.model.message.ModifyDnRequest) ModifyRequest(org.apache.directory.api.ldap.model.message.ModifyRequest) Oid(org.apache.directory.api.asn1.util.Oid) BinaryAttributeDetector(org.apache.directory.api.ldap.codec.api.BinaryAttributeDetector) AddRequest(org.apache.directory.api.ldap.model.message.AddRequest) DefaultEntry(org.apache.directory.api.ldap.model.entry.DefaultEntry) Entry(org.apache.directory.api.ldap.model.entry.Entry) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) CompareRequest(org.apache.directory.api.ldap.model.message.CompareRequest) ModificationOperation(org.apache.directory.api.ldap.model.entry.ModificationOperation) ExtendedRequest(org.apache.directory.api.ldap.model.message.ExtendedRequest) SearchScope(org.apache.directory.api.ldap.model.message.SearchScope) Value(org.apache.directory.api.ldap.model.entry.Value) Rdn(org.apache.directory.api.ldap.model.name.Rdn) DeleteRequest(org.apache.directory.api.ldap.model.message.DeleteRequest)

Example 22 with BindRequest

use of org.apache.directory.api.ldap.model.message.BindRequest in project directory-ldap-api by apache.

the class ValidatingPoolableLdapConnectionFactoryTest method testPoolWithBind.

@Test
public void testPoolWithBind() {
    PoolTester tester = new PoolTester();
    // no bind
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // bind()
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            connection.bind();
            verify(connection, times(1)).bind();
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // anonymousBind()
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            connection.anonymousBind();
            verify(connection, times(1)).anonymousBind();
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // bind( String )
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            connection.bind("");
            verify(connection, times(1)).bind("");
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // admin bind( String, String )
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            connection.bind(ADMIN_DN, ADMIN_CREDENTIALS);
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // bind( String, String )
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            connection.bind("", "");
            verify(connection, times(1)).bind("", "");
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // bind( Dn )
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            Dn dn = new Dn();
            connection.bind(dn);
            verify(connection, times(1)).bind(dn);
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // bind( Dn, String )
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            Dn dn = new Dn();
            connection.bind(dn, "");
            verify(connection, times(1)).bind(dn, "");
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
    // bind( BindRequest );
    tester.execute(new WithConnection() {

        @Override
        public void execute(LdapConnection connection, Counts counts) throws LdapException {
            BindRequest bindRequest = new BindRequestImpl();
            connection.bind(bindRequest);
            verify(connection, times(1)).bind(bindRequest);
            verifyAdminBind(connection, times(counts.adminBindCount));
        }
    });
}
Also used : BindRequest(org.apache.directory.api.ldap.model.message.BindRequest) Dn(org.apache.directory.api.ldap.model.name.Dn) LdapException(org.apache.directory.api.ldap.model.exception.LdapException) BindRequestImpl(org.apache.directory.api.ldap.model.message.BindRequestImpl) Test(org.junit.Test)

Example 23 with BindRequest

use of org.apache.directory.api.ldap.model.message.BindRequest in project directory-ldap-api by apache.

the class InitBindRequest method action.

/**
 * {@inheritDoc}
 */
public void action(LdapMessageContainer<BindRequestDecorator> container) throws DecoderException {
    // Create the BindRequest LdapMessage instance and store it in the container
    BindRequest internalBindRequest = new BindRequestImpl();
    internalBindRequest.setMessageId(container.getMessageId());
    BindRequestDecorator bindRequest = new BindRequestDecorator(container.getLdapCodecService(), internalBindRequest);
    container.setMessage(bindRequest);
    // We will check that the request is not null
    TLV tlv = container.getCurrentTLV();
    if (tlv.getLength() == 0) {
        String msg = I18n.err(I18n.ERR_04077);
        LOG.error(msg);
        // This will generate a PROTOCOL_ERROR
        throw new DecoderException(msg);
    }
}
Also used : DecoderException(org.apache.directory.api.asn1.DecoderException) BindRequestDecorator(org.apache.directory.api.ldap.codec.decorators.BindRequestDecorator) BindRequest(org.apache.directory.api.ldap.model.message.BindRequest) BindRequestImpl(org.apache.directory.api.ldap.model.message.BindRequestImpl) TLV(org.apache.directory.api.asn1.ber.tlv.TLV)

Example 24 with BindRequest

use of org.apache.directory.api.ldap.model.message.BindRequest in project directory-ldap-api by apache.

the class StoreSaslMechanism method action.

/**
 * {@inheritDoc}
 */
public void action(LdapMessageContainer<BindRequestDecorator> container) {
    BindRequest bindRequestMessage = container.getMessage();
    TLV tlv = container.getCurrentTLV();
    // mechanism
    if (tlv.getLength() == 0) {
        bindRequestMessage.setSaslMechanism("");
    } else {
        bindRequestMessage.setSaslMechanism(Strings.utf8ToString(tlv.getValue().getData()));
    }
    // We can have an END transition
    container.setGrammarEndAllowed(true);
    if (IS_DEBUG) {
        LOG.debug("The mechanism is : {}", bindRequestMessage.getSaslMechanism());
    }
}
Also used : BindRequest(org.apache.directory.api.ldap.model.message.BindRequest) TLV(org.apache.directory.api.asn1.ber.tlv.TLV)

Example 25 with BindRequest

use of org.apache.directory.api.ldap.model.message.BindRequest in project directory-ldap-api by apache.

the class StoreSimpleAuth method action.

/**
 * {@inheritDoc}
 */
public void action(LdapMessageContainer<BindRequestDecorator> container) throws DecoderException {
    BindRequest bindRequestMessage = container.getMessage();
    TLV tlv = container.getCurrentTLV();
    // Allocate the Authentication Object
    bindRequestMessage.setSimple(true);
    // We have to handle the special case of a 0 length simple
    if (tlv.getLength() == 0) {
        bindRequestMessage.setCredentials(Strings.EMPTY_BYTES);
    } else {
        bindRequestMessage.setCredentials(tlv.getValue().getData());
    }
    // We can have an END transition
    container.setGrammarEndAllowed(true);
    if (IS_DEBUG) {
        LOG.debug("The simple authentication is : {}", Strings.dumpBytes(bindRequestMessage.getCredentials()));
    }
}
Also used : BindRequest(org.apache.directory.api.ldap.model.message.BindRequest) TLV(org.apache.directory.api.asn1.ber.tlv.TLV)

Aggregations

BindRequest (org.apache.directory.api.ldap.model.message.BindRequest)45 Test (org.junit.Test)27 DecoderException (org.apache.directory.api.asn1.DecoderException)19 AbstractCodecServiceTest (org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)17 ByteBuffer (java.nio.ByteBuffer)16 LdapMessageContainer (org.apache.directory.api.ldap.codec.api.LdapMessageContainer)16 Asn1Decoder (org.apache.directory.api.asn1.ber.Asn1Decoder)15 BindRequestDecorator (org.apache.directory.api.ldap.codec.decorators.BindRequestDecorator)15 EncoderException (org.apache.directory.api.asn1.EncoderException)12 Control (org.apache.directory.api.ldap.model.message.Control)11 AbstractTest (org.apache.directory.api.dsmlv2.AbstractTest)9 Dsmlv2Parser (org.apache.directory.api.dsmlv2.Dsmlv2Parser)9 BindRequestImpl (org.apache.directory.api.ldap.model.message.BindRequestImpl)9 TLV (org.apache.directory.api.asn1.ber.tlv.TLV)7 BindResponse (org.apache.directory.api.ldap.model.message.BindResponse)7 DsmlControl (org.apache.directory.api.dsmlv2.DsmlControl)5 CodecControl (org.apache.directory.api.ldap.codec.api.CodecControl)4 Dn (org.apache.directory.api.ldap.model.name.Dn)4 MessageDecorator (org.apache.directory.api.ldap.codec.api.MessageDecorator)3 AbandonRequest (org.apache.directory.api.ldap.model.message.AbandonRequest)3