3 changed files with 82 additions and 4 deletions
@ -0,0 +1,73 @@
@@ -0,0 +1,73 @@
|
||||
package org.springframework.security.ldap; |
||||
|
||||
import org.springframework.security.context.SecurityContextHolder; |
||||
import org.springframework.security.providers.TestingAuthenticationToken; |
||||
import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken; |
||||
import org.springframework.security.userdetails.ldap.LdapUserDetailsImpl; |
||||
import org.springframework.security.util.AuthorityUtils; |
||||
import org.springframework.ldap.core.AuthenticationSource; |
||||
import org.springframework.ldap.core.DistinguishedName; |
||||
|
||||
import org.junit.After; |
||||
import static org.junit.Assert.assertEquals; |
||||
import org.junit.Before; |
||||
import org.junit.Test; |
||||
|
||||
/** |
||||
* @author Luke Taylor |
||||
* @version $Id$ |
||||
*/ |
||||
public class SpringSecurityAuthenticationSourceTests { |
||||
@Before |
||||
@After |
||||
public void clearContext() { |
||||
SecurityContextHolder.clearContext(); |
||||
} |
||||
|
||||
@Test |
||||
public void principalAndCredentialsAreEmptyWithNoAuthentication() { |
||||
AuthenticationSource source = new SpringSecurityAuthenticationSource(); |
||||
assertEquals("", source.getPrincipal()); |
||||
assertEquals("", source.getCredentials()); |
||||
} |
||||
|
||||
@Test |
||||
public void principalIsEmptyForAnonymousUser() { |
||||
AuthenticationSource source = new SpringSecurityAuthenticationSource(); |
||||
|
||||
SecurityContextHolder.getContext().setAuthentication( |
||||
new AnonymousAuthenticationToken("key", "anonUser", |
||||
AuthorityUtils.commaSeparatedStringToAuthorityArray("ignored"))); |
||||
assertEquals("", source.getPrincipal()); |
||||
} |
||||
|
||||
@Test(expected=IllegalArgumentException.class) |
||||
public void getPrincipalRejectsNonLdapUserDetailsObject() { |
||||
AuthenticationSource source = new SpringSecurityAuthenticationSource(); |
||||
SecurityContextHolder.getContext().setAuthentication( |
||||
new TestingAuthenticationToken(new Object(), "password", null)); |
||||
|
||||
source.getPrincipal(); |
||||
} |
||||
|
||||
@Test |
||||
public void expectedCredentialsAreReturned() { |
||||
AuthenticationSource source = new SpringSecurityAuthenticationSource(); |
||||
SecurityContextHolder.getContext().setAuthentication( |
||||
new TestingAuthenticationToken(new Object(), "password", null)); |
||||
|
||||
assertEquals("password", source.getCredentials()); |
||||
} |
||||
|
||||
@Test |
||||
public void expectedPrincipalIsReturned() { |
||||
LdapUserDetailsImpl.Essence user = new LdapUserDetailsImpl.Essence(); |
||||
user.setUsername("joe"); |
||||
user.setDn(new DistinguishedName("uid=joe,ou=users")); |
||||
AuthenticationSource source = new SpringSecurityAuthenticationSource(); |
||||
SecurityContextHolder.getContext().setAuthentication( |
||||
new TestingAuthenticationToken(user.createUserDetails(), null, null)); |
||||
|
||||
assertEquals("uid=joe, ou=users", source.getPrincipal()); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue