mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-10-30 22:28:46 +00:00 
			
		
		
		
	Converted test class to use in memory XML snippets - makes it easier to work out which one is causing a failure.
This commit is contained in:
		
							parent
							
								
									ca8dff7abb
								
							
						
					
					
						commit
						b29bcfebe8
					
				| @ -3,47 +3,100 @@ package org.springframework.security.config; | |||||||
| import org.springframework.security.providers.ProviderManager; | import org.springframework.security.providers.ProviderManager; | ||||||
| import org.springframework.security.providers.UsernamePasswordAuthenticationToken; | import org.springframework.security.providers.UsernamePasswordAuthenticationToken; | ||||||
| import org.springframework.security.providers.AuthenticationProvider; | import org.springframework.security.providers.AuthenticationProvider; | ||||||
| import org.springframework.context.support.ClassPathXmlApplicationContext; | import org.springframework.security.util.InMemoryXmlApplicationContext; | ||||||
| import org.springframework.beans.BeansException; | import org.springframework.context.support.AbstractXmlApplicationContext; | ||||||
| 
 | 
 | ||||||
| import org.junit.BeforeClass; |  | ||||||
| import org.junit.AfterClass; |  | ||||||
| import org.junit.Test; | import org.junit.Test; | ||||||
|  | import org.junit.After; | ||||||
| 
 | 
 | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  |  * Tests for {@link AuthenticationProviderBeanDefinitionParser}. | ||||||
|  |  * | ||||||
|  * @author Luke Taylor |  * @author Luke Taylor | ||||||
|  * @version $Id$ |  * @version $Id$ | ||||||
|  */ |  */ | ||||||
| public class AuthenticationProviderBeanDefinitionParserTests { | public class AuthenticationProviderBeanDefinitionParserTests { | ||||||
|     private static ClassPathXmlApplicationContext appContext; |     private AbstractXmlApplicationContext appContext; | ||||||
|  |     private UsernamePasswordAuthenticationToken bob = new UsernamePasswordAuthenticationToken("bob", "bobspassword"); | ||||||
| 
 | 
 | ||||||
|     @BeforeClass |     @After | ||||||
|     public static void loadContext() { |     public void closeAppContext() { | ||||||
|         try { |  | ||||||
|             appContext = new ClassPathXmlApplicationContext("org/springframework/security/config/auth-provider.xml"); |  | ||||||
|         } catch (BeansException e) { |  | ||||||
|             e.printStackTrace(); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @AfterClass |  | ||||||
|     public static void closeAppContext() { |  | ||||||
|         if (appContext != null) { |         if (appContext != null) { | ||||||
|             appContext.close(); |             appContext.close(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Test |     @Test | ||||||
|     public void configuredProvidersAllAuthenticateUser() { |     public void worksWithEmbeddedUserService() { | ||||||
|  |         setContext(" <authentication-provider>" + | ||||||
|  |                 "        <user-service>" + | ||||||
|  |                 "            <user name='bob' password='bobspassword' authorities='ROLE_A' />" + | ||||||
|  |                 "        </user-service>" + | ||||||
|  |                 "    </authentication-provider>"); | ||||||
|  |         getProvider().authenticate(bob); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void externalUserServiceRefWorks() throws Exception { | ||||||
|  |         setContext(" <authentication-provider user-service-ref='myUserService' />" + | ||||||
|  |                 "    <user-service id='myUserService'>" + | ||||||
|  |                 "       <user name='bob' password='bobspassword' authorities='ROLE_A' />" + | ||||||
|  |                 "    </user-service>"); | ||||||
|  |         getProvider().authenticate(bob); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void providerWithMd5PasswordEncoderWorks() throws Exception { | ||||||
|  |         setContext(" <authentication-provider>" + | ||||||
|  |                 "        <password-encoder hash='md5'/>" + | ||||||
|  |                 "        <user-service>" + | ||||||
|  |                 "            <user name='bob' password='12b141f35d58b8b3a46eea65e6ac179e' authorities='ROLE_A' />" + | ||||||
|  |                 "        </user-service>" + | ||||||
|  |                 "    </authentication-provider>"); | ||||||
|  | 
 | ||||||
|  |         getProvider().authenticate(bob); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void providerWithShaPasswordEncoderWorks() throws Exception { | ||||||
|  |         setContext(" <authentication-provider>" + | ||||||
|  |                 "        <password-encoder hash='{sha}'/>" + | ||||||
|  |                 "        <user-service>" + | ||||||
|  |                 "            <user name='bob' password='{SSHA}PpuEwfdj7M1rs0C2W4ssSM2XEN/Y6S5U' authorities='ROLE_A' />" + | ||||||
|  |                 "        </user-service>" + | ||||||
|  |                 "    </authentication-provider>"); | ||||||
|  | 
 | ||||||
|  |         getProvider().authenticate(bob); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void externalUserServiceAndPasswordEncoderWork() throws Exception { | ||||||
|  |         setContext(" <authentication-provider user-service-ref='customUserService'>" + | ||||||
|  |                 "        <password-encoder ref='customPasswordEncoder'>" + | ||||||
|  |                 "            <salt-source user-property='username'/>" + | ||||||
|  |                 "        </password-encoder>" + | ||||||
|  |                 "    </authentication-provider>" + | ||||||
|  | 
 | ||||||
|  |                 "    <b:bean id='customPasswordEncoder' " + | ||||||
|  |                             "class='org.springframework.security.providers.encoding.Md5PasswordEncoder'/>" + | ||||||
|  | 
 | ||||||
|  |                 "    <b:bean id='customUserService' " + | ||||||
|  |                 "           class='org.springframework.security.userdetails.memory.InMemoryDaoImpl'>" + | ||||||
|  |                 "        <b:property name='userMap' value='bob=f117f0862384e9497ff4f470e3522606,ROLE_A'/>" + | ||||||
|  |                 "    </b:bean>"); | ||||||
|  |         getProvider().authenticate(bob); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private AuthenticationProvider getProvider() { | ||||||
|         List<AuthenticationProvider> providers = |         List<AuthenticationProvider> providers = | ||||||
|                 ((ProviderManager)appContext.getBean(BeanIds.AUTHENTICATION_MANAGER)).getProviders(); |                 ((ProviderManager)appContext.getBean(BeanIds.AUTHENTICATION_MANAGER)).getProviders(); | ||||||
| 
 | 
 | ||||||
|         UsernamePasswordAuthenticationToken bob = new UsernamePasswordAuthenticationToken("bob", "bobspassword"); |         return providers.get(0); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|         for (AuthenticationProvider provider : providers) { |     private void setContext(String context) { | ||||||
|             provider.authenticate(bob); |         appContext = new InMemoryXmlApplicationContext(context); | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,50 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> |  | ||||||
| 
 |  | ||||||
| <beans:beans xmlns="http://www.springframework.org/schema/security" |  | ||||||
|     xmlns:beans="http://www.springframework.org/schema/beans" |  | ||||||
|     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |  | ||||||
|     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd |  | ||||||
| http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd"> |  | ||||||
| 
 |  | ||||||
|     <!-- All combinations should authenticate as bob/bobspassword --> |  | ||||||
| 
 |  | ||||||
|     <authentication-provider> |  | ||||||
|         <user-service> |  | ||||||
|             <user name="bob" password="bobspassword" authorities="ROLE_A" /> |  | ||||||
|         </user-service> |  | ||||||
|     </authentication-provider> |  | ||||||
| 
 |  | ||||||
|     <authentication-provider user-service-ref="myUserService" /> |  | ||||||
| 
 |  | ||||||
|     <user-service id="myUserService"> |  | ||||||
|         <user name="bob" password="bobspassword" authorities="ROLE_A" /> |  | ||||||
|     </user-service> |  | ||||||
| 
 |  | ||||||
|     <authentication-provider> |  | ||||||
|         <password-encoder hash="md5"/> |  | ||||||
|         <user-service> |  | ||||||
|             <user name="bob" password="12b141f35d58b8b3a46eea65e6ac179e" authorities="ROLE_A" /> |  | ||||||
|         </user-service> |  | ||||||
|     </authentication-provider> |  | ||||||
| 
 |  | ||||||
|     <authentication-provider> |  | ||||||
|         <password-encoder hash="{sha}"/> |  | ||||||
|         <user-service> |  | ||||||
|             <user name="bob" password="{SSHA}PpuEwfdj7M1rs0C2W4ssSM2XEN/Y6S5U" authorities="ROLE_A" /> |  | ||||||
|         </user-service> |  | ||||||
|     </authentication-provider> |  | ||||||
| 
 |  | ||||||
|     <!-- External beans for both UserDetailsService and PasswordEncoder --> |  | ||||||
|     <authentication-provider user-service-ref="customUserService"> |  | ||||||
|         <password-encoder ref="customPasswordEncoder"> |  | ||||||
|             <salt-source user-property="username"/> |  | ||||||
|         </password-encoder> |  | ||||||
|     </authentication-provider> |  | ||||||
| 
 |  | ||||||
|     <beans:bean id="customPasswordEncoder" class="org.springframework.security.providers.encoding.Md5PasswordEncoder"/> |  | ||||||
| 
 |  | ||||||
|     <beans:bean id="customUserService" class="org.springframework.security.userdetails.memory.InMemoryDaoImpl"> |  | ||||||
|         <beans:property name="userMap" value="bob=f117f0862384e9497ff4f470e3522606,ROLE_A"/> |  | ||||||
|     </beans:bean> |  | ||||||
| 
 |  | ||||||
| </beans:beans> |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user