Skip to content

Commit d582080

Browse files
committed
Use AnnotationTemplateExpressionDefaults in Reactive
Issue spring-projectsgh-15097
1 parent 36bae4f commit d582080

File tree

5 files changed

+61
-0
lines changed

5 files changed

+61
-0
lines changed

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.springframework.security.authorization.method.PreFilterAuthorizationReactiveMethodInterceptor;
4444
import org.springframework.security.authorization.method.PrePostTemplateDefaults;
4545
import org.springframework.security.config.core.GrantedAuthorityDefaults;
46+
import org.springframework.security.core.annotation.AnnotationTemplateExpressionDefaults;
4647

4748
/**
4849
* Configuration for a {@link ReactiveAuthenticationManager} based Method Security.
@@ -108,6 +109,14 @@ void setTemplateDefaults(PrePostTemplateDefaults templateDefaults) {
108109
this.postFilterMethodInterceptor.setTemplateDefaults(templateDefaults);
109110
}
110111

112+
@Autowired(required = false)
113+
void setTemplateDefaults(AnnotationTemplateExpressionDefaults templateDefaults) {
114+
this.preFilterMethodInterceptor.setTemplateDefaults(templateDefaults);
115+
this.preAuthorizeAuthorizationManager.setTemplateDefaults(templateDefaults);
116+
this.postAuthorizeAuthorizationManager.setTemplateDefaults(templateDefaults);
117+
this.postFilterMethodInterceptor.setTemplateDefaults(templateDefaults);
118+
}
119+
111120
@Autowired(required = false)
112121
void setObservationRegistry(ObservationRegistry registry) {
113122
if (registry.isNoop()) {

core/src/main/java/org/springframework/security/authorization/method/PostAuthorizeReactiveAuthorizationManager.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.security.authorization.AuthorizationResult;
2828
import org.springframework.security.authorization.ReactiveAuthorizationManager;
2929
import org.springframework.security.core.Authentication;
30+
import org.springframework.security.core.annotation.AnnotationTemplateExpressionDefaults;
3031
import org.springframework.util.Assert;
3132

3233
/**
@@ -63,6 +64,18 @@ public void setTemplateDefaults(PrePostTemplateDefaults defaults) {
6364
this.registry.setTemplateDefaults(defaults);
6465
}
6566

67+
/**
68+
* Configure pre/post-authorization template resolution
69+
* <p>
70+
* By default, this value is <code>null</code>, which indicates that templates should
71+
* not be resolved.
72+
* @param defaults - whether to resolve pre/post-authorization templates parameters
73+
* @since 6.4
74+
*/
75+
public void setTemplateDefaults(AnnotationTemplateExpressionDefaults defaults) {
76+
this.registry.setTemplateDefaults(defaults);
77+
}
78+
6679
public void setApplicationContext(ApplicationContext context) {
6780
this.registry.setApplicationContext(context);
6881
}

core/src/main/java/org/springframework/security/authorization/method/PostFilterAuthorizationReactiveMethodInterceptor.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springframework.security.access.expression.method.MethodSecurityExpressionHandler;
3434
import org.springframework.security.access.expression.method.MethodSecurityExpressionOperations;
3535
import org.springframework.security.access.prepost.PostFilter;
36+
import org.springframework.security.core.annotation.AnnotationTemplateExpressionDefaults;
3637
import org.springframework.util.Assert;
3738

3839
/**
@@ -78,6 +79,18 @@ public void setTemplateDefaults(PrePostTemplateDefaults defaults) {
7879
this.registry.setTemplateDefaults(defaults);
7980
}
8081

82+
/**
83+
* Configure pre/post-authorization template resolution
84+
* <p>
85+
* By default, this value is <code>null</code>, which indicates that templates should
86+
* not be resolved.
87+
* @param defaults - whether to resolve pre/post-authorization templates parameters
88+
* @since 6.4
89+
*/
90+
public void setTemplateDefaults(AnnotationTemplateExpressionDefaults defaults) {
91+
this.registry.setTemplateDefaults(defaults);
92+
}
93+
8194
/**
8295
* Filters the returned object from the {@link MethodInvocation} by evaluating an
8396
* expression from the {@link PostFilter} annotation.

core/src/main/java/org/springframework/security/authorization/method/PreAuthorizeReactiveAuthorizationManager.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.security.authorization.AuthorizationResult;
2828
import org.springframework.security.authorization.ReactiveAuthorizationManager;
2929
import org.springframework.security.core.Authentication;
30+
import org.springframework.security.core.annotation.AnnotationTemplateExpressionDefaults;
3031
import org.springframework.util.Assert;
3132

3233
/**
@@ -63,6 +64,18 @@ public void setTemplateDefaults(PrePostTemplateDefaults defaults) {
6364
this.registry.setTemplateDefaults(defaults);
6465
}
6566

67+
/**
68+
* Configure pre/post-authorization template resolution
69+
* <p>
70+
* By default, this value is <code>null</code>, which indicates that templates should
71+
* not be resolved.
72+
* @param defaults - whether to resolve pre/post-authorization templates parameters
73+
* @since 6.4
74+
*/
75+
public void setTemplateDefaults(AnnotationTemplateExpressionDefaults defaults) {
76+
this.registry.setTemplateDefaults(defaults);
77+
}
78+
6679
public void setApplicationContext(ApplicationContext context) {
6780
this.registry.setApplicationContext(context);
6881
}

core/src/main/java/org/springframework/security/authorization/method/PreFilterAuthorizationReactiveMethodInterceptor.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.springframework.security.access.expression.method.MethodSecurityExpressionHandler;
3737
import org.springframework.security.access.expression.method.MethodSecurityExpressionOperations;
3838
import org.springframework.security.access.prepost.PreFilter;
39+
import org.springframework.security.core.annotation.AnnotationTemplateExpressionDefaults;
3940
import org.springframework.security.core.parameters.DefaultSecurityParameterNameDiscoverer;
4041
import org.springframework.util.Assert;
4142
import org.springframework.util.StringUtils;
@@ -81,6 +82,18 @@ public void setTemplateDefaults(PrePostTemplateDefaults defaults) {
8182
this.registry.setTemplateDefaults(defaults);
8283
}
8384

85+
/**
86+
* Configure pre/post-authorization template resolution
87+
* <p>
88+
* By default, this value is <code>null</code>, which indicates that templates should
89+
* not be resolved.
90+
* @param defaults - whether to resolve pre/post-authorization templates parameters
91+
* @since 6.4
92+
*/
93+
public void setTemplateDefaults(AnnotationTemplateExpressionDefaults defaults) {
94+
this.registry.setTemplateDefaults(defaults);
95+
}
96+
8497
/**
8598
* Sets the {@link ParameterNameDiscoverer}.
8699
* @param parameterNameDiscoverer the {@link ParameterNameDiscoverer} to use

0 commit comments

Comments
 (0)