mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-28 06:42:49 +00:00
Pick Up TargetVisitor Beans
Closes gh-16923
This commit is contained in:
parent
5841e35cae
commit
6438603cb6
@ -32,6 +32,7 @@ import org.springframework.security.aot.hint.SecurityHintsRegistrar;
|
|||||||
import org.springframework.security.authorization.AuthorizationProxyFactory;
|
import org.springframework.security.authorization.AuthorizationProxyFactory;
|
||||||
import org.springframework.security.authorization.method.AuthorizationAdvisor;
|
import org.springframework.security.authorization.method.AuthorizationAdvisor;
|
||||||
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory;
|
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory;
|
||||||
|
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor;
|
||||||
import org.springframework.security.authorization.method.AuthorizeReturnObjectMethodInterceptor;
|
import org.springframework.security.authorization.method.AuthorizeReturnObjectMethodInterceptor;
|
||||||
import org.springframework.security.config.Customizer;
|
import org.springframework.security.config.Customizer;
|
||||||
|
|
||||||
@ -41,11 +42,15 @@ final class AuthorizationProxyConfiguration implements AopInfrastructureBean {
|
|||||||
@Bean
|
@Bean
|
||||||
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
|
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
|
||||||
static AuthorizationAdvisorProxyFactory authorizationProxyFactory(
|
static AuthorizationAdvisorProxyFactory authorizationProxyFactory(
|
||||||
ObjectProvider<AuthorizationAdvisor> authorizationAdvisors,
|
ObjectProvider<AuthorizationAdvisor> authorizationAdvisors, ObjectProvider<TargetVisitor> targetVisitors,
|
||||||
ObjectProvider<Customizer<AuthorizationAdvisorProxyFactory>> customizers) {
|
ObjectProvider<Customizer<AuthorizationAdvisorProxyFactory>> customizers) {
|
||||||
List<AuthorizationAdvisor> advisors = new ArrayList<>();
|
List<AuthorizationAdvisor> advisors = new ArrayList<>();
|
||||||
authorizationAdvisors.forEach(advisors::add);
|
authorizationAdvisors.forEach(advisors::add);
|
||||||
|
List<TargetVisitor> visitors = new ArrayList<>();
|
||||||
|
targetVisitors.orderedStream().forEach(visitors::add);
|
||||||
|
visitors.add(TargetVisitor.defaults());
|
||||||
AuthorizationAdvisorProxyFactory factory = new AuthorizationAdvisorProxyFactory(advisors);
|
AuthorizationAdvisorProxyFactory factory = new AuthorizationAdvisorProxyFactory(advisors);
|
||||||
|
factory.setTargetVisitor(TargetVisitor.of(visitors.toArray(TargetVisitor[]::new)));
|
||||||
customizers.forEach((c) -> c.customize(factory));
|
customizers.forEach((c) -> c.customize(factory));
|
||||||
return factory;
|
return factory;
|
||||||
}
|
}
|
||||||
|
@ -2143,9 +2143,13 @@ Java::
|
|||||||
+
|
+
|
||||||
[source,java,role="primary"]
|
[source,java,role="primary"]
|
||||||
----
|
----
|
||||||
|
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor;
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
static Customizer<AuthorizationAdvisorProxyFactory> skipValueTypes() {
|
static TargetVisitor skipValueTypes() {
|
||||||
return (factory) -> factory.setTargetVisitor(TargetVisitor.defaultsSkipValueTypes());
|
return TargetVisitor.defaultsSkipValueTypes();
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
@ -2153,10 +2157,12 @@ Kotlin::
|
|||||||
+
|
+
|
||||||
[source,kotlin,role="secondary"]
|
[source,kotlin,role="secondary"]
|
||||||
----
|
----
|
||||||
|
import org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory.TargetVisitor
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
open fun skipValueTypes() = Customizer<AuthorizationAdvisorProxyFactory> {
|
open fun skipValueTypes() = TargetVisitor.defaultsSkipValueTypes()
|
||||||
it.setTargetVisitor(TargetVisitor.defaultsSkipValueTypes())
|
|
||||||
}
|
|
||||||
----
|
----
|
||||||
======
|
======
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user