From 39dbd24dcbd5ce7ab21b5801ee6c4cc165e2b6cb Mon Sep 17 00:00:00 2001
From: Steve Riesenberg <5248162+sjohnr@users.noreply.github.com>
Date: Thu, 4 Apr 2024 13:55:08 -0500
Subject: [PATCH] Polish gh-14742
---
.../JdbcUserServiceBeanDefinitionParser.java | 2 +-
...cUserServiceBeanDefinitionParserTests.java | 34 ++++++++-----------
2 files changed, 16 insertions(+), 20 deletions(-)
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 5ed12e79c2a..9cbe4f93cd9 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
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2016 the original author or authors.
+ * Copyright 2002-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
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 3b8add34c60..7a07eeb69d3 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
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2022 the original author or authors.
+ * Copyright 2002-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,12 +16,13 @@
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.xml.sax.SAXParseException;
-import org.springframework.beans.factory.BeanDefinitionStoreException;
+import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.CachingUserDetailsService;
import org.springframework.security.authentication.ProviderManager;
@@ -35,6 +36,7 @@
import org.springframework.security.util.FieldUtils;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.mockito.Mockito.mock;
/**
@@ -170,15 +172,11 @@ public void testEmptyDataSourceRef() {
+ " "
+ " "
+ "";
+ assertThatExceptionOfType(BeanDefinitionParsingException.class)
+ .isThrownBy(() -> setContext(xml))
+ .withFailMessage("Expected exception due to empty data-source-ref")
+ .withMessageContaining("data-source-ref is required for jdbc-user-service");
// @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
@@ -189,15 +187,13 @@ public void testMissingDataSourceRef() {
+ " "
+ " "
+ "";
+ assertThatExceptionOfType(XmlBeanDefinitionStoreException.class)
+ .isThrownBy(() -> setContext(xml))
+ .withFailMessage("Expected exception due to missing data-source-ref")
+ .havingRootCause()
+ .isInstanceOf(SAXParseException.class)
+ .withMessageContaining("Attribute 'data-source-ref' must appear on element 'jdbc-user-service'");
// @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) {