|
@@ -35,6 +35,7 @@ import org.springframework.core.ReactiveAdapterRegistry;
|
|
|
import org.springframework.security.access.prepost.PostAuthorize;
|
|
|
import org.springframework.security.authorization.AuthorizationDecision;
|
|
|
import org.springframework.security.authorization.AuthorizationDeniedException;
|
|
|
+import org.springframework.security.authorization.AuthorizationResult;
|
|
|
import org.springframework.security.authorization.ReactiveAuthorizationManager;
|
|
|
import org.springframework.security.core.Authentication;
|
|
|
import org.springframework.util.Assert;
|
|
@@ -165,22 +166,7 @@ public final class AuthorizationManagerAfterReactiveMethodInterceptor implements
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private Mono<Object> postProcess(AuthorizationDeniedException denied,
|
|
|
- MethodInvocationResult methodInvocationResult) {
|
|
|
- return Mono.fromSupplier(() -> {
|
|
|
- if (this.authorizationManager instanceof MethodAuthorizationDeniedPostProcessor postProcessableDecision) {
|
|
|
- return postProcessableDecision.postProcessResult(methodInvocationResult, denied);
|
|
|
- }
|
|
|
- return this.defaultPostProcessor.postProcessResult(methodInvocationResult, denied);
|
|
|
- }).flatMap((processedResult) -> {
|
|
|
- if (Mono.class.isAssignableFrom(processedResult.getClass())) {
|
|
|
- return (Mono<?>) processedResult;
|
|
|
- }
|
|
|
- return Mono.justOrEmpty(processedResult);
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- private Mono<Object> postProcess(AuthorizationDecision decision, MethodInvocationResult methodInvocationResult) {
|
|
|
+ private Mono<Object> postProcess(AuthorizationResult decision, MethodInvocationResult methodInvocationResult) {
|
|
|
if (decision.isGranted()) {
|
|
|
return Mono.just(methodInvocationResult.getResult());
|
|
|
}
|