diff --git a/core/src/test/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParserTests.java b/core/src/test/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParserTests.java
index 7a6b1c7629..ea2e475abb 100644
--- a/core/src/test/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParserTests.java
+++ b/core/src/test/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParserTests.java
@@ -3,47 +3,100 @@ package org.springframework.security.config;
import org.springframework.security.providers.ProviderManager;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
import org.springframework.security.providers.AuthenticationProvider;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.beans.BeansException;
+import org.springframework.security.util.InMemoryXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.junit.BeforeClass;
-import org.junit.AfterClass;
import org.junit.Test;
+import org.junit.After;
import java.util.List;
/**
+ * Tests for {@link AuthenticationProviderBeanDefinitionParser}.
+ *
* @author Luke Taylor
* @version $Id$
*/
public class AuthenticationProviderBeanDefinitionParserTests {
- private static ClassPathXmlApplicationContext appContext;
-
- @BeforeClass
- public static void loadContext() {
- try {
- appContext = new ClassPathXmlApplicationContext("org/springframework/security/config/auth-provider.xml");
- } catch (BeansException e) {
- e.printStackTrace();
- }
- }
+ private AbstractXmlApplicationContext appContext;
+ private UsernamePasswordAuthenticationToken bob = new UsernamePasswordAuthenticationToken("bob", "bobspassword");
- @AfterClass
- public static void closeAppContext() {
+ @After
+ public void closeAppContext() {
if (appContext != null) {
appContext.close();
}
}
@Test
- public void configuredProvidersAllAuthenticateUser() {
+ public void worksWithEmbeddedUserService() {
+ setContext(" " +
+ " " +
+ " " +
+ " " +
+ " ");
+ getProvider().authenticate(bob);
+ }
+
+ @Test
+ public void externalUserServiceRefWorks() throws Exception {
+ setContext(" " +
+ " " +
+ " " +
+ " ");
+ getProvider().authenticate(bob);
+ }
+
+ @Test
+ public void providerWithMd5PasswordEncoderWorks() throws Exception {
+ setContext(" " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " ");
+
+ getProvider().authenticate(bob);
+ }
+
+ @Test
+ public void providerWithShaPasswordEncoderWorks() throws Exception {
+ setContext(" " +
+ " " +
+ " " +
+ " " +
+ " " +
+ " ");
+
+ getProvider().authenticate(bob);
+ }
+
+ @Test
+ public void externalUserServiceAndPasswordEncoderWork() throws Exception {
+ setContext(" " +
+ " " +
+ " " +
+ " " +
+ " " +
+
+ " " +
+
+ " " +
+ " " +
+ " ");
+ getProvider().authenticate(bob);
+ }
+
+ private AuthenticationProvider getProvider() {
List providers =
((ProviderManager)appContext.getBean(BeanIds.AUTHENTICATION_MANAGER)).getProviders();
- UsernamePasswordAuthenticationToken bob = new UsernamePasswordAuthenticationToken("bob", "bobspassword");
+ return providers.get(0);
+ }
- for (AuthenticationProvider provider : providers) {
- provider.authenticate(bob);
- }
+ private void setContext(String context) {
+ appContext = new InMemoryXmlApplicationContext(context);
}
}
diff --git a/core/src/test/resources/org/springframework/security/config/auth-provider.xml b/core/src/test/resources/org/springframework/security/config/auth-provider.xml
deleted file mode 100644
index 393068609c..0000000000
--- a/core/src/test/resources/org/springframework/security/config/auth-provider.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file