Explorar o código

SEC-1812: Replace assertion with warning message when overriding the global AuthenticationManager.

Luke Taylor %!s(int64=14) %!d(string=hai) anos
pai
achega
3b13a3fb25

+ 3 - 2
config/src/main/java/org/springframework/security/config/authentication/AuthenticationManagerBeanDefinitionParser.java

@@ -41,8 +41,9 @@ public class AuthenticationManagerBeanDefinitionParser implements BeanDefinition
         String id = element.getAttribute("id");
 
         if (!StringUtils.hasText(id)) {
-            Assert.state(!pc.getRegistry().containsBeanDefinition(BeanIds.AUTHENTICATION_MANAGER),
-                "Global AuthenticationManager has already been registered!");
+            if (pc.getRegistry().containsBeanDefinition(BeanIds.AUTHENTICATION_MANAGER)) {
+                pc.getReaderContext().warning("Overriding globally registered AuthenticationManager", pc.extractSource(element));
+            }
             id = BeanIds.AUTHENTICATION_MANAGER;
         }
         pc.pushContainingComponent(new CompositeComponentDefinition(element.getTagName(), pc.extractSource(element)));