Search in sources :

Example 11 with LdapConfig

use of com.thoughtworks.go.config.LdapConfig in project gocd by gocd.

the class LdapUserSearchTest method shouldReturnUserFoundInSecondSearchBase.

@Test
public void shouldReturnUserFoundInSecondSearchBase() {
    final FilterBasedLdapUserSearch filter1 = mock(FilterBasedLdapUserSearch.class);
    final FilterBasedLdapUserSearch filter2 = mock(FilterBasedLdapUserSearch.class);
    LdapConfig ldapConfig = setLdapConfig(new BasesConfig(new BaseConfig("base1"), new BaseConfig("base2")));
    doReturn(filter1).when(spy).getFilterBasedLdapUserSearch(ldapConfig.getBasesConfig().get(0).getValue(), ldapConfig.searchFilter());
    doReturn(filter2).when(spy).getFilterBasedLdapUserSearch(ldapConfig.getBasesConfig().get(1).getValue(), ldapConfig.searchFilter());
    when(filter1.searchForUser("username")).thenThrow(new UsernameNotFoundException("User username not found in directory."));
    DirContextOperations foundUser = mock(DirContextOperations.class);
    when(filter2.searchForUser("username")).thenReturn(foundUser);
    assertThat(spy.searchForUser("username"), is(foundUser));
    verify(filter1).searchForUser("username");
    verify(filter2).searchForUser("username");
}
Also used : LdapConfig(com.thoughtworks.go.config.LdapConfig) UsernameNotFoundException(org.springframework.security.userdetails.UsernameNotFoundException) DirContextOperations(org.springframework.ldap.core.DirContextOperations) FilterBasedLdapUserSearch(org.springframework.security.ldap.search.FilterBasedLdapUserSearch) BasesConfig(com.thoughtworks.go.config.server.security.ldap.BasesConfig) BaseConfig(com.thoughtworks.go.config.server.security.ldap.BaseConfig) Test(org.junit.Test)

Example 12 with LdapConfig

use of com.thoughtworks.go.config.LdapConfig in project gocd by gocd.

the class LdapUserSearchTest method shouldNotLogWhenLastSearchBaseIsInvalidAndUserIsNotFound.

@Test
public void shouldNotLogWhenLastSearchBaseIsInvalidAndUserIsNotFound() {
    final FilterBasedLdapUserSearch filter1 = mock(FilterBasedLdapUserSearch.class);
    final FilterBasedLdapUserSearch filter2 = mock(FilterBasedLdapUserSearch.class);
    LdapConfig ldapConfig = setLdapConfig(new BasesConfig(new BaseConfig("base1"), new BaseConfig("base2")));
    doReturn(filter1).when(spy).getFilterBasedLdapUserSearch(ldapConfig.getBasesConfig().get(0).getValue(), ldapConfig.searchFilter());
    doReturn(filter2).when(spy).getFilterBasedLdapUserSearch(ldapConfig.getBasesConfig().get(1).getValue(), ldapConfig.searchFilter());
    RuntimeException runtimeException = new RuntimeException("Invalid search base");
    when(filter1.searchForUser("username")).thenThrow(new UsernameNotFoundException("User not found"));
    when(filter2.searchForUser("username")).thenThrow(runtimeException);
    thrown.expect(RuntimeException.class);
    spy.searchForUser("username");
    verify(logger, never()).warn(Matchers.<Object>any(), Matchers.<Throwable>any());
}
Also used : LdapConfig(com.thoughtworks.go.config.LdapConfig) UsernameNotFoundException(org.springframework.security.userdetails.UsernameNotFoundException) FilterBasedLdapUserSearch(org.springframework.security.ldap.search.FilterBasedLdapUserSearch) BasesConfig(com.thoughtworks.go.config.server.security.ldap.BasesConfig) BaseConfig(com.thoughtworks.go.config.server.security.ldap.BaseConfig) Test(org.junit.Test)

Example 13 with LdapConfig

use of com.thoughtworks.go.config.LdapConfig in project gocd by gocd.

the class LdapConfigChangedListener method onConfigChange.

public void onConfigChange(CruiseConfig newCruiseConfig) {
    LdapConfig newLdapConfig = newCruiseConfig.server().security().ldapConfig();
    if (!currentLdapConfig.equals(newLdapConfig)) {
        ldapContextFactory.initializeDelegator();
        currentLdapConfig = newLdapConfig;
        LOGGER.info(String.format("[Configuration Changed] LDAP configuration changed."));
    }
}
Also used : LdapConfig(com.thoughtworks.go.config.LdapConfig)

Example 14 with LdapConfig

use of com.thoughtworks.go.config.LdapConfig in project gocd by gocd.

the class FileAuthenticationProviderTest method setupFile.

private void setupFile(String userAndPasswordAndRoles) throws IOException {
    final File passwordFile = TestFileUtil.createTempFile("password.properties");
    passwordFile.deleteOnExit();
    FileUtils.writeStringToFile(passwordFile, userAndPasswordAndRoles);
    final SecurityConfig securityConfig = new SecurityConfig(new LdapConfig(new GoCipher()), new PasswordFileConfig(passwordFile.getAbsolutePath()), true, null);
    when(goConfigService.security()).thenReturn(securityConfig);
}
Also used : LdapConfig(com.thoughtworks.go.config.LdapConfig) GoCipher(com.thoughtworks.go.security.GoCipher) SecurityConfig(com.thoughtworks.go.config.SecurityConfig) File(java.io.File) PasswordFileConfig(com.thoughtworks.go.config.PasswordFileConfig)

Example 15 with LdapConfig

use of com.thoughtworks.go.config.LdapConfig in project gocd by gocd.

the class FileAuthenticationProviderTest method shouldThrowExceptionIfFileDoesNotExist.

@Test(expected = UsernameNotFoundException.class)
public void shouldThrowExceptionIfFileDoesNotExist() throws Exception {
    when(goConfigService.security()).thenReturn(new SecurityConfig(new LdapConfig(new GoCipher()), new PasswordFileConfig("ueyrweiyri"), true, null));
    AuthorityGranter authorityGranter = new AuthorityGranter(securityService);
    FileAuthenticationProvider provider = new FileAuthenticationProvider(goConfigService, authorityGranter, userService, securityService);
    provider.retrieveUser("blah", null);
}
Also used : LdapConfig(com.thoughtworks.go.config.LdapConfig) AuthorityGranter(com.thoughtworks.go.server.security.AuthorityGranter) GoCipher(com.thoughtworks.go.security.GoCipher) SecurityConfig(com.thoughtworks.go.config.SecurityConfig) PasswordFileConfig(com.thoughtworks.go.config.PasswordFileConfig) Test(org.junit.Test)

Aggregations

LdapConfig (com.thoughtworks.go.config.LdapConfig)23 Test (org.junit.Test)17 BaseConfig (com.thoughtworks.go.config.server.security.ldap.BaseConfig)15 BasesConfig (com.thoughtworks.go.config.server.security.ldap.BasesConfig)14 FilterBasedLdapUserSearch (org.springframework.security.ldap.search.FilterBasedLdapUserSearch)11 PasswordFileConfig (com.thoughtworks.go.config.PasswordFileConfig)7 UsernameNotFoundException (org.springframework.security.userdetails.UsernameNotFoundException)7 SecurityConfig (com.thoughtworks.go.config.SecurityConfig)6 DirContextOperations (org.springframework.ldap.core.DirContextOperations)6 GoCipher (com.thoughtworks.go.security.GoCipher)4 AdminsConfig (com.thoughtworks.go.config.AdminsConfig)3 AbstractContextSource (org.springframework.ldap.core.support.AbstractContextSource)2 AdminUser (com.thoughtworks.go.config.AdminUser)1 Authorization (com.thoughtworks.go.config.Authorization)1 CaseInsensitiveString (com.thoughtworks.go.config.CaseInsensitiveString)1 CruiseConfig (com.thoughtworks.go.config.CruiseConfig)1 MingleConfig (com.thoughtworks.go.config.MingleConfig)1 PipelineConfigs (com.thoughtworks.go.config.PipelineConfigs)1 ViewConfig (com.thoughtworks.go.config.ViewConfig)1 AuthorityGranter (com.thoughtworks.go.server.security.AuthorityGranter)1