|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2002-2023 the original author or authors.
|
|
|
+ * Copyright 2002-2024 the original author or authors.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -30,6 +30,7 @@ import org.springframework.core.type.AnnotationMetadata;
|
|
|
import org.springframework.security.access.hierarchicalroles.NullRoleHierarchy;
|
|
|
import org.springframework.security.access.hierarchicalroles.RoleHierarchy;
|
|
|
import org.springframework.security.authorization.AuthoritiesAuthorizationManager;
|
|
|
+import org.springframework.security.authorization.AuthorizationEventPublisher;
|
|
|
import org.springframework.security.authorization.AuthorizationManager;
|
|
|
import org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor;
|
|
|
import org.springframework.security.authorization.method.Jsr250AuthorizationManager;
|
|
@@ -56,6 +57,7 @@ final class Jsr250MethodSecurityConfiguration implements ImportAware {
|
|
|
static MethodInterceptor jsr250AuthorizationMethodInterceptor(
|
|
|
ObjectProvider<GrantedAuthorityDefaults> defaultsProvider,
|
|
|
ObjectProvider<SecurityContextHolderStrategy> strategyProvider,
|
|
|
+ ObjectProvider<AuthorizationEventPublisher> eventPublisherProvider,
|
|
|
ObjectProvider<ObservationRegistry> registryProvider, ObjectProvider<RoleHierarchy> roleHierarchyProvider,
|
|
|
Jsr250MethodSecurityConfiguration configuration) {
|
|
|
Jsr250AuthorizationManager jsr250 = new Jsr250AuthorizationManager();
|
|
@@ -72,6 +74,7 @@ final class Jsr250MethodSecurityConfiguration implements ImportAware {
|
|
|
.jsr250(manager);
|
|
|
interceptor.setOrder(interceptor.getOrder() + configuration.interceptorOrderOffset);
|
|
|
interceptor.setSecurityContextHolderStrategy(strategy);
|
|
|
+ eventPublisherProvider.ifAvailable(interceptor::setAuthorizationEventPublisher);
|
|
|
return interceptor;
|
|
|
}
|
|
|
|