From d194724a045ce2f66d751b60f0edb621b80d49c9 Mon Sep 17 00:00:00 2001 From: Josh Cummings Date: Thu, 12 Sep 2024 12:40:14 -0600 Subject: [PATCH] Skip Proxying If Already Proxied Issue gh-15709 --- .../method/AuthorizationAdvisorProxyFactory.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/src/main/java/org/springframework/security/authorization/method/AuthorizationAdvisorProxyFactory.java b/core/src/main/java/org/springframework/security/authorization/method/AuthorizationAdvisorProxyFactory.java index 88db8d6bc7..5cf36b5fa2 100644 --- a/core/src/main/java/org/springframework/security/authorization/method/AuthorizationAdvisorProxyFactory.java +++ b/core/src/main/java/org/springframework/security/authorization/method/AuthorizationAdvisorProxyFactory.java @@ -169,6 +169,9 @@ public final class AuthorizationAdvisorProxyFactory if (target == null) { return null; } + if (target instanceof AuthorizationProxy proxied) { + return proxied; + } Object proxied = this.visitor.visit(this, target); if (proxied != null) { return proxied; @@ -365,6 +368,9 @@ public final class AuthorizationAdvisorProxyFactory @Override public Object visit(AuthorizationAdvisorProxyFactory proxyFactory, Object object) { if (object instanceof Class targetClass) { + if (AuthorizationProxy.class.isAssignableFrom(targetClass)) { + return targetClass; + } ProxyFactory factory = new ProxyFactory(); factory.setTargetClass(targetClass); factory.setInterfaces(ClassUtils.getAllInterfacesForClass(targetClass));