File tree Expand file tree Collapse file tree 2 files changed +17
-6
lines changed
config/src/main/java/org/springframework/security/config/annotation/method/configuration
docs/modules/ROOT/pages/servlet/authorization Expand file tree Collapse file tree 2 files changed +17
-6
lines changed Original file line number Diff line number Diff line change 32
32
import org .springframework .security .authorization .AuthorizationProxyFactory ;
33
33
import org .springframework .security .authorization .method .AuthorizationAdvisor ;
34
34
import org .springframework .security .authorization .method .AuthorizationAdvisorProxyFactory ;
35
+ import org .springframework .security .authorization .method .AuthorizationAdvisorProxyFactory .TargetVisitor ;
35
36
import org .springframework .security .authorization .method .AuthorizeReturnObjectMethodInterceptor ;
36
37
import org .springframework .security .config .Customizer ;
37
38
@@ -41,11 +42,15 @@ final class AuthorizationProxyConfiguration implements AopInfrastructureBean {
41
42
@ Bean
42
43
@ Role (BeanDefinition .ROLE_INFRASTRUCTURE )
43
44
static AuthorizationAdvisorProxyFactory authorizationProxyFactory (
44
- ObjectProvider <AuthorizationAdvisor > authorizationAdvisors ,
45
+ ObjectProvider <AuthorizationAdvisor > authorizationAdvisors , ObjectProvider < TargetVisitor > targetVisitors ,
45
46
ObjectProvider <Customizer <AuthorizationAdvisorProxyFactory >> customizers ) {
46
47
List <AuthorizationAdvisor > advisors = new ArrayList <>();
47
48
authorizationAdvisors .forEach (advisors ::add );
49
+ List <TargetVisitor > visitors = new ArrayList <>();
50
+ targetVisitors .orderedStream ().forEach (visitors ::add );
51
+ visitors .add (TargetVisitor .defaults ());
48
52
AuthorizationAdvisorProxyFactory factory = new AuthorizationAdvisorProxyFactory (advisors );
53
+ factory .setTargetVisitor (TargetVisitor .of (visitors .toArray (TargetVisitor []::new )));
49
54
customizers .forEach ((c ) -> c .customize (factory ));
50
55
return factory ;
51
56
}
Original file line number Diff line number Diff line change @@ -2143,20 +2143,26 @@ Java::
2143
2143
+
2144
2144
[source,java,role="primary"]
2145
2145
----
2146
+ import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor;
2147
+
2148
+ // ...
2149
+
2146
2150
@Bean
2147
- static Customizer<AuthorizationAdvisorProxyFactory> skipValueTypes() {
2148
- return (factory) -> factory.setTargetVisitor( TargetVisitor.defaultsSkipValueTypes() );
2151
+ static TargetVisitor skipValueTypes() {
2152
+ return TargetVisitor.defaultsSkipValueTypes();
2149
2153
}
2150
2154
----
2151
2155
2152
2156
Kotlin::
2153
2157
+
2154
2158
[source,kotlin,role="secondary"]
2155
2159
----
2160
+ import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor
2161
+
2162
+ // ...
2163
+
2156
2164
@Bean
2157
- open fun skipValueTypes() = Customizer<AuthorizationAdvisorProxyFactory> {
2158
- it.setTargetVisitor(TargetVisitor.defaultsSkipValueTypes())
2159
- }
2165
+ open fun skipValueTypes() = TargetVisitor.defaultsSkipValueTypes()
2160
2166
----
2161
2167
======
2162
2168
You can’t perform that action at this time.
0 commit comments