Skip to content

Commit 6438603

Browse files
committed
Pick Up TargetVisitor Beans
Closes gh-16923
1 parent 5841e35 commit 6438603

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

config/src/main/java/org/springframework/security/config/annotation/method/configuration/AuthorizationProxyConfiguration.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.springframework.security.authorization.AuthorizationProxyFactory;
3333
import org.springframework.security.authorization.method.AuthorizationAdvisor;
3434
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory;
35+
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor;
3536
import org.springframework.security.authorization.method.AuthorizeReturnObjectMethodInterceptor;
3637
import org.springframework.security.config.Customizer;
3738

@@ -41,11 +42,15 @@ final class AuthorizationProxyConfiguration implements AopInfrastructureBean {
4142
@Bean
4243
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
4344
static AuthorizationAdvisorProxyFactory authorizationProxyFactory(
44-
ObjectProvider<AuthorizationAdvisor> authorizationAdvisors,
45+
ObjectProvider<AuthorizationAdvisor> authorizationAdvisors, ObjectProvider<TargetVisitor> targetVisitors,
4546
ObjectProvider<Customizer<AuthorizationAdvisorProxyFactory>> customizers) {
4647
List<AuthorizationAdvisor> advisors = new ArrayList<>();
4748
authorizationAdvisors.forEach(advisors::add);
49+
List<TargetVisitor> visitors = new ArrayList<>();
50+
targetVisitors.orderedStream().forEach(visitors::add);
51+
visitors.add(TargetVisitor.defaults());
4852
AuthorizationAdvisorProxyFactory factory = new AuthorizationAdvisorProxyFactory(advisors);
53+
factory.setTargetVisitor(TargetVisitor.of(visitors.toArray(TargetVisitor[]::new)));
4954
customizers.forEach((c) -> c.customize(factory));
5055
return factory;
5156
}

docs/modules/ROOT/pages/servlet/authorization/method-security.adoc

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2143,20 +2143,26 @@ Java::
21432143
+
21442144
[source,java,role="primary"]
21452145
----
2146+
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor;
2147+
2148+
// ...
2149+
21462150
@Bean
2147-
static Customizer<AuthorizationAdvisorProxyFactory> skipValueTypes() {
2148-
return (factory) -> factory.setTargetVisitor(TargetVisitor.defaultsSkipValueTypes());
2151+
static TargetVisitor skipValueTypes() {
2152+
return TargetVisitor.defaultsSkipValueTypes();
21492153
}
21502154
----
21512155
21522156
Kotlin::
21532157
+
21542158
[source,kotlin,role="secondary"]
21552159
----
2160+
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor
2161+
2162+
// ...
2163+
21562164
@Bean
2157-
open fun skipValueTypes() = Customizer<AuthorizationAdvisorProxyFactory> {
2158-
it.setTargetVisitor(TargetVisitor.defaultsSkipValueTypes())
2159-
}
2165+
open fun skipValueTypes() = TargetVisitor.defaultsSkipValueTypes()
21602166
----
21612167
======
21622168

0 commit comments

Comments
 (0)