From f99c58d9d84d0412e4d7a8eac27edddc6b5d4912 Mon Sep 17 00:00:00 2001 From: sheheryarumair Date: Wed, 13 Mar 2024 19:32:07 +0500 Subject: [PATCH] Removed dataSource null validation Fixed data source validation --- .../JdbcUserServiceBeanDefinitionParser.java | 2 +- ...cUserServiceBeanDefinitionParserTests.java | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java index a0d7de83f65..5ed12e79c2a 100644 --- a/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParser.java @@ -42,7 +42,7 @@ protected String getBeanClassName(Element element) { @Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String dataSource = element.getAttribute(ATT_DATA_SOURCE); - if (dataSource != null) { + if (StringUtils.hasText(dataSource)) { builder.addPropertyReference("dataSource", dataSource); } else { diff --git a/config/src/test/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParserTests.java index 41395cd8b41..3b8add34c60 100644 --- a/config/src/test/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParserTests.java +++ b/config/src/test/java/org/springframework/security/config/authentication/JdbcUserServiceBeanDefinitionParserTests.java @@ -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 void rolePrefixIsUsedWhenSet() { assertThat(AuthorityUtils.authorityListToSet(rod.getAuthorities())).contains("PREFIX_ROLE_SUPERVISOR"); } + @Test + public void testEmptyDataSourceRef() { + // @formatter:off + String xml = "" + + " " + + " " + + " " + + ""; + // @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 = "" + + " " + + " " + + " " + + ""; + // @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); }