LdapAuthenticationProviderBeanDefinitionParserTests.java 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package org.acegisecurity.config;
  2. import junit.framework.TestCase;
  3. import org.acegisecurity.ldap.InitialDirContextFactory;
  4. import org.acegisecurity.providers.ldap.LdapAuthenticationProvider;
  5. import org.acegisecurity.providers.ldap.authenticator.BindAuthenticator;
  6. import org.springframework.beans.PropertyValue;
  7. import org.springframework.beans.PropertyValues;
  8. import org.springframework.beans.factory.config.BeanDefinition;
  9. import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
  10. import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder;
  11. import org.springframework.beans.factory.support.ManagedList;
  12. import org.springframework.beans.factory.support.RootBeanDefinition;
  13. import org.springframework.context.ApplicationContext;
  14. import org.springframework.context.support.ClassPathXmlApplicationContext;
  15. /**
  16. * @author Vishal Puri
  17. *
  18. */
  19. public class LdapAuthenticationProviderBeanDefinitionParserTests extends TestCase {
  20. public void testBeanDefinitionCreation() {
  21. ApplicationContext context = new ClassPathXmlApplicationContext("org/acegisecurity/config/ldap-config.xml");
  22. ConfigurableListableBeanFactory bf = (ConfigurableListableBeanFactory) context.getAutowireCapableBeanFactory();
  23. BeanDefinition def = (RootBeanDefinition) bf.getBeanDefinition("authenticationManager");
  24. assertNotNull(def);
  25. PropertyValues values = def.getPropertyValues();
  26. PropertyValue value = values.getPropertyValue("providers");
  27. assertNotNull(value);
  28. ManagedList list = (ManagedList) value.getValue();
  29. assertEquals(1, list.size());
  30. RootBeanDefinition definition = (RootBeanDefinition) list.get(0);
  31. assertEquals(LdapAuthenticationProvider.class, definition.getBeanClass());
  32. assertEquals(2, definition.getConstructorArgumentValues().getArgumentCount());
  33. ValueHolder holder = definition.getConstructorArgumentValues().getArgumentValue(0, BindAuthenticator.class);
  34. assertNotNull(holder.getConvertedValue() instanceof BindAuthenticator);
  35. RootBeanDefinition authenticatorDefinition = (RootBeanDefinition) holder.getValue();
  36. assertEquals(1, authenticatorDefinition.getConstructorArgumentValues().getArgumentCount());
  37. RootBeanDefinition initialContextDir = (RootBeanDefinition) authenticatorDefinition
  38. .getConstructorArgumentValues().getArgumentValue(0, InitialDirContextFactory.class).getValue();
  39. assertEquals("cn=manager,dc=acegisecurity,dc=org", initialContextDir.getPropertyValues().getPropertyValue(
  40. "managerDn").getValue());
  41. assertEquals("ldap://monkeymachine:389/dc=acegisecurity,dc=org", initialContextDir.getConstructorArgumentValues()
  42. .getArgumentValue(0, String.class).getValue());
  43. }
  44. }