Skip to content

Commit ed79efc

Browse files
franticticktickjzheaux
authored andcommitted
Add support ResolvableTypeProvider to authorization events
Closes gh-16700 Signed-off-by: Max Batischev <[email protected]>
1 parent 6c90712 commit ed79efc

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java

+13-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import java.util.function.Supplier;
2020

2121
import org.springframework.context.ApplicationEvent;
22+
import org.springframework.core.ResolvableType;
23+
import org.springframework.core.ResolvableTypeProvider;
2224
import org.springframework.security.authorization.AuthorizationDecision;
2325
import org.springframework.security.authorization.AuthorizationResult;
2426
import org.springframework.security.core.Authentication;
@@ -31,7 +33,7 @@
3133
* @since 5.7
3234
*/
3335
@SuppressWarnings("serial")
34-
public class AuthorizationDeniedEvent<T> extends AuthorizationEvent {
36+
public class AuthorizationDeniedEvent<T> extends AuthorizationEvent implements ResolvableTypeProvider {
3537

3638
/**
3739
* @deprecated Please use an {@link AuthorizationResult} constructor instead
@@ -59,4 +61,14 @@ public T getObject() {
5961
return (T) getSource();
6062
}
6163

64+
/**
65+
* Get {@link ResolvableType} of this class.
66+
* @return {@link ResolvableType}
67+
* @since 6.5
68+
*/
69+
@Override
70+
public ResolvableType getResolvableType() {
71+
return ResolvableType.forClassWithGenerics(getClass(), ResolvableType.forInstance(getObject()));
72+
}
73+
6274
}

core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java

+13-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.util.function.Supplier;
2121

2222
import org.springframework.context.ApplicationEvent;
23+
import org.springframework.core.ResolvableType;
24+
import org.springframework.core.ResolvableTypeProvider;
2325
import org.springframework.security.authorization.AuthorizationDecision;
2426
import org.springframework.security.authorization.AuthorizationResult;
2527
import org.springframework.security.core.Authentication;
@@ -32,7 +34,7 @@
3234
* @since 5.7
3335
*/
3436
@SuppressWarnings("serial")
35-
public class AuthorizationGrantedEvent<T> extends AuthorizationEvent {
37+
public class AuthorizationGrantedEvent<T> extends AuthorizationEvent implements ResolvableTypeProvider {
3638

3739
@Serial
3840
private static final long serialVersionUID = -8690818228055810339L;
@@ -65,4 +67,14 @@ public T getObject() {
6567
return (T) getSource();
6668
}
6769

70+
/**
71+
* Get {@link ResolvableType} of this class.
72+
* @return {@link ResolvableType}
73+
* @since 6.5
74+
*/
75+
@Override
76+
public ResolvableType getResolvableType() {
77+
return ResolvableType.forClassWithGenerics(getClass(), ResolvableType.forInstance(getObject()));
78+
}
79+
6880
}

0 commit comments

Comments
 (0)