Search in sources :

Example 6 with LdapConnection

use of com.gitblit.ldap.LdapConnection in project gitblit by gitblit.

the class LdapConnectionTest method testBindAsAdmin.

@Test
public void testBindAsAdmin() {
    // This test tests for anonymous bind, so run only in authentication mode DS_MANAGER.
    assumeTrue(authMode == AuthMode.DS_MANAGER);
    LdapConnection conn = new LdapConnection(settings);
    try {
        assertTrue(conn.connect());
        BindResult br = conn.bind();
        assertNotNull(br);
        assertEquals(ResultCode.SUCCESS, br.getResultCode());
        assertEquals(settings.getString(Keys.realm.ldap.username, "UNSET"), authMode.getBindTracker().getLastSuccessfulBindDN(br.getMessageID()));
    } finally {
        conn.close();
    }
}
Also used : BindResult(com.unboundid.ldap.sdk.BindResult) LdapConnection(com.gitblit.ldap.LdapConnection) Test(org.junit.Test)

Example 7 with LdapConnection

use of com.gitblit.ldap.LdapConnection in project gitblit by gitblit.

the class LdapConnectionTest method testBindAnonymous.

@Test
public void testBindAnonymous() {
    // This test tests for anonymous bind, so run only in authentication mode ANONYMOUS.
    assumeTrue(authMode == AuthMode.ANONYMOUS);
    LdapConnection conn = new LdapConnection(settings);
    try {
        assertTrue(conn.connect());
        BindResult br = conn.bind();
        assertNotNull(br);
        assertEquals(ResultCode.SUCCESS, br.getResultCode());
        assertEquals("", authMode.getBindTracker().getLastSuccessfulBindDN(br.getMessageID()));
    } finally {
        conn.close();
    }
}
Also used : BindResult(com.unboundid.ldap.sdk.BindResult) LdapConnection(com.gitblit.ldap.LdapConnection) Test(org.junit.Test)

Example 8 with LdapConnection

use of com.gitblit.ldap.LdapConnection in project gitblit by gitblit.

the class LdapConnectionTest method testSearch.

@Test
public void testSearch() throws LDAPException {
    LdapConnection conn = new LdapConnection(settings);
    try {
        assertTrue(conn.connect());
        BindResult br = conn.bind();
        assertNotNull(br);
        SearchResult result;
        SearchResultEntry entry;
        result = conn.search(ACCOUNT_BASE, false, "(CN=UserOne)", null);
        assertNotNull(result);
        assertEquals(1, result.getEntryCount());
        entry = result.getSearchEntries().get(0);
        assertEquals("CN=UserOne,OU=US," + ACCOUNT_BASE, entry.getDN());
        result = conn.search(ACCOUNT_BASE, true, "(&(CN=UserOne)(surname=One))", null);
        assertNotNull(result);
        assertEquals(1, result.getEntryCount());
        entry = result.getSearchEntries().get(0);
        assertEquals("CN=UserOne,OU=US," + ACCOUNT_BASE, entry.getDN());
        result = conn.search(ACCOUNT_BASE, true, "(&(CN=UserOne)(surname=Two))", null);
        assertNotNull(result);
        assertEquals(0, result.getEntryCount());
        result = conn.search(ACCOUNT_BASE, true, "(surname=Two)", Arrays.asList("givenName", "surname"));
        assertNotNull(result);
        assertEquals(1, result.getEntryCount());
        entry = result.getSearchEntries().get(0);
        assertEquals("CN=UserTwo,OU=US," + ACCOUNT_BASE, entry.getDN());
        assertEquals(2, entry.getAttributes().size());
        assertEquals("User", entry.getAttributeValue("givenName"));
        assertEquals("Two", entry.getAttributeValue("surname"));
        result = conn.search(ACCOUNT_BASE, true, "(personalTitle=Mr*)", null);
        assertNotNull(result);
        assertEquals(3, result.getEntryCount());
        ArrayList<String> names = new ArrayList<>(3);
        names.add(result.getSearchEntries().get(0).getAttributeValue("surname"));
        names.add(result.getSearchEntries().get(1).getAttributeValue("surname"));
        names.add(result.getSearchEntries().get(2).getAttributeValue("surname"));
        assertTrue(names.contains("One"));
        assertTrue(names.contains("Two"));
        assertTrue(names.contains("Three"));
    } finally {
        conn.close();
    }
}
Also used : ArrayList(java.util.ArrayList) BindResult(com.unboundid.ldap.sdk.BindResult) SearchResult(com.unboundid.ldap.sdk.SearchResult) LdapConnection(com.gitblit.ldap.LdapConnection) SearchResultEntry(com.unboundid.ldap.sdk.SearchResultEntry) Test(org.junit.Test)

Example 9 with LdapConnection

use of com.gitblit.ldap.LdapConnection in project gitblit by gitblit.

the class LdapConnectionTest method testSearchRequest.

@Test
public void testSearchRequest() throws LDAPException {
    LdapConnection conn = new LdapConnection(settings);
    try {
        assertTrue(conn.connect());
        BindResult br = conn.bind();
        assertNotNull(br);
        SearchRequest req;
        SearchResult result;
        SearchResultEntry entry;
        req = new SearchRequest(ACCOUNT_BASE, SearchScope.BASE, "(CN=UserOne)");
        result = conn.search(req);
        assertNotNull(result);
        assertEquals(0, result.getEntryCount());
        req = new SearchRequest(ACCOUNT_BASE, SearchScope.ONE, "(CN=UserTwo)");
        result = conn.search(req);
        assertNotNull(result);
        assertEquals(0, result.getEntryCount());
        req = new SearchRequest(ACCOUNT_BASE, SearchScope.SUB, "(CN=UserThree)");
        result = conn.search(req);
        assertNotNull(result);
        assertEquals(1, result.getEntryCount());
        entry = result.getSearchEntries().get(0);
        assertEquals("CN=UserThree,OU=Canada," + ACCOUNT_BASE, entry.getDN());
        req = new SearchRequest(ACCOUNT_BASE, SearchScope.SUBORDINATE_SUBTREE, "(CN=UserFour)");
        result = conn.search(req);
        assertNotNull(result);
        assertEquals(1, result.getEntryCount());
        entry = result.getSearchEntries().get(0);
        assertEquals("CN=UserFour,OU=Canada," + ACCOUNT_BASE, entry.getDN());
    } finally {
        conn.close();
    }
}
Also used : SearchRequest(com.unboundid.ldap.sdk.SearchRequest) BindResult(com.unboundid.ldap.sdk.BindResult) SearchResult(com.unboundid.ldap.sdk.SearchResult) LdapConnection(com.gitblit.ldap.LdapConnection) SearchResultEntry(com.unboundid.ldap.sdk.SearchResultEntry) Test(org.junit.Test)

Example 10 with LdapConnection

use of com.gitblit.ldap.LdapConnection in project gitblit by gitblit.

the class LdapConnectionTest method testSearchUser.

@Test
public void testSearchUser() throws LDAPException {
    LdapConnection conn = new LdapConnection(settings);
    try {
        assertTrue(conn.connect());
        BindResult br = conn.bind();
        assertNotNull(br);
        SearchResult result;
        SearchResultEntry entry;
        result = conn.searchUser("UserOne");
        assertNotNull(result);
        assertEquals(1, result.getEntryCount());
        entry = result.getSearchEntries().get(0);
        assertEquals("CN=UserOne,OU=US," + ACCOUNT_BASE, entry.getDN());
        result = conn.searchUser("UserFour", Arrays.asList("givenName", "surname"));
        assertNotNull(result);
        assertEquals(1, result.getEntryCount());
        entry = result.getSearchEntries().get(0);
        assertEquals("CN=UserFour,OU=Canada," + ACCOUNT_BASE, entry.getDN());
        assertEquals(2, entry.getAttributes().size());
        assertEquals("User", entry.getAttributeValue("givenName"));
        assertEquals("Four", entry.getAttributeValue("surname"));
    } finally {
        conn.close();
    }
}
Also used : BindResult(com.unboundid.ldap.sdk.BindResult) SearchResult(com.unboundid.ldap.sdk.SearchResult) LdapConnection(com.gitblit.ldap.LdapConnection) SearchResultEntry(com.unboundid.ldap.sdk.SearchResultEntry) Test(org.junit.Test)

Aggregations

LdapConnection (com.gitblit.ldap.LdapConnection)11 BindResult (com.unboundid.ldap.sdk.BindResult)9 Test (org.junit.Test)8 SearchResult (com.unboundid.ldap.sdk.SearchResult)6 SearchResultEntry (com.unboundid.ldap.sdk.SearchResultEntry)6 TeamModel (com.gitblit.models.TeamModel)2 UserModel (com.gitblit.models.UserModel)2 ArrayList (java.util.ArrayList)2 Attribute (com.unboundid.ldap.sdk.Attribute)1 SearchRequest (com.unboundid.ldap.sdk.SearchRequest)1 IOException (java.io.IOException)1 GeneralSecurityException (java.security.GeneralSecurityException)1 HashMap (java.util.HashMap)1 Matcher (java.util.regex.Matcher)1