diff --git a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java index 05d0fcdbc5..7121f7e25a 100644 --- a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java +++ b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java @@ -19,6 +19,8 @@ package org.springframework.security.authorization.event; import java.util.function.Supplier; import org.springframework.context.ApplicationEvent; +import org.springframework.core.ResolvableType; +import org.springframework.core.ResolvableTypeProvider; import org.springframework.security.authorization.AuthorizationDecision; import org.springframework.security.authorization.AuthorizationResult; import org.springframework.security.core.Authentication; @@ -31,7 +33,7 @@ import org.springframework.security.core.Authentication; * @since 5.7 */ @SuppressWarnings("serial") -public class AuthorizationDeniedEvent extends AuthorizationEvent { +public class AuthorizationDeniedEvent extends AuthorizationEvent implements ResolvableTypeProvider { /** * @deprecated Please use an {@link AuthorizationResult} constructor instead @@ -59,4 +61,14 @@ public class AuthorizationDeniedEvent extends AuthorizationEvent { return (T) getSource(); } + /** + * Get {@link ResolvableType} of this class. + * @return {@link ResolvableType} + * @since 6.5 + */ + @Override + public ResolvableType getResolvableType() { + return ResolvableType.forClassWithGenerics(getClass(), ResolvableType.forInstance(getObject())); + } + } diff --git a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java index 9cde351930..26115a5100 100644 --- a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java +++ b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java @@ -20,6 +20,8 @@ import java.io.Serial; import java.util.function.Supplier; import org.springframework.context.ApplicationEvent; +import org.springframework.core.ResolvableType; +import org.springframework.core.ResolvableTypeProvider; import org.springframework.security.authorization.AuthorizationDecision; import org.springframework.security.authorization.AuthorizationResult; import org.springframework.security.core.Authentication; @@ -32,7 +34,7 @@ import org.springframework.security.core.Authentication; * @since 5.7 */ @SuppressWarnings("serial") -public class AuthorizationGrantedEvent extends AuthorizationEvent { +public class AuthorizationGrantedEvent extends AuthorizationEvent implements ResolvableTypeProvider { @Serial private static final long serialVersionUID = -8690818228055810339L; @@ -65,4 +67,14 @@ public class AuthorizationGrantedEvent extends AuthorizationEvent { return (T) getSource(); } + /** + * Get {@link ResolvableType} of this class. + * @return {@link ResolvableType} + * @since 6.5 + */ + @Override + public ResolvableType getResolvableType() { + return ResolvableType.forClassWithGenerics(getClass(), ResolvableType.forInstance(getObject())); + } + }