@ -16,10 +16,12 @@
@@ -16,10 +16,12 @@
package org.springframework.security.config.authentication ;
import org.assertj.core.api.Assertions ;
import org.junit.jupiter.api.AfterEach ;
import org.junit.jupiter.api.Test ;
import org.w3c.dom.Element ;
import org.springframework.beans.factory.BeanDefinitionStoreException ;
import org.springframework.security.authentication.AuthenticationManager ;
import org.springframework.security.authentication.CachingUserDetailsService ;
import org.springframework.security.authentication.ProviderManager ;
@ -160,6 +162,44 @@ public class JdbcUserServiceBeanDefinitionParserTests {
@@ -160,6 +162,44 @@ public class JdbcUserServiceBeanDefinitionParserTests {
assertThat ( AuthorityUtils . authorityListToSet ( rod . getAuthorities ( ) ) ) . contains ( "PREFIX_ROLE_SUPERVISOR" ) ;
}
@Test
public void testEmptyDataSourceRef ( ) {
// @formatter:off
String xml = "<authentication-manager>"
+ " <authentication-provider>"
+ " <jdbc-user-service data-source-ref=''/>"
+ " </authentication-provider>"
+ "</authentication-manager>" ;
// @formatter:on
try {
setContext ( xml ) ;
Assertions . fail ( "Expected exception due to empty data-source-ref" ) ;
}
catch ( BeanDefinitionStoreException ex ) {
assertThat ( ex . getMessage ( ) ) . contains ( "data-source-ref is required" ) ;
}
}
@Test
public void testMissingDataSourceRef ( ) {
// @formatter:off
String xml = "<authentication-manager>"
+ " <authentication-provider>"
+ " <jdbc-user-service/>"
+ " </authentication-provider>"
+ "</authentication-manager>" ;
// @formatter:on
try {
setContext ( xml ) ;
Assertions . fail ( "Expected exception due to missing data-source-ref" ) ;
}
catch ( BeanDefinitionStoreException ex ) {
assertThat ( ex . getMessage ( ) ) . contains ( "XML document from" ) . contains ( "is invalid" ) ;
}
}
private void setContext ( String context ) {
this . appContext = new InMemoryXmlApplicationContext ( context ) ;
}