Skip to content

Commit a297709

Browse files
Add support ResolvableTypeProvider to authorization events
Closes gh-16700 Signed-off-by: Max Batischev <[email protected]>
1 parent 41e1f39 commit a297709

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
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/AuthorizationEvent.java

+1-13
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
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;
2523
import org.springframework.security.authorization.AuthorizationDecision;
2624
import org.springframework.security.authorization.AuthorizationResult;
2725
import org.springframework.security.core.Authentication;
@@ -35,7 +33,7 @@
3533
* @since 5.8
3634
*/
3735
@SuppressWarnings("serial")
38-
public class AuthorizationEvent extends ApplicationEvent implements ResolvableTypeProvider {
36+
public class AuthorizationEvent extends ApplicationEvent {
3937

4038
@Serial
4139
private static final long serialVersionUID = -9053927371500241295L;
@@ -112,14 +110,4 @@ public AuthorizationResult getAuthorizationResult() {
112110
return this.result;
113111
}
114112

115-
/**
116-
* Get {@link ResolvableType} of this class.
117-
* @return {@link ResolvableType}
118-
* @since 6.5
119-
*/
120-
@Override
121-
public ResolvableType getResolvableType() {
122-
return ResolvableType.forClassWithGenerics(getClass(), ResolvableType.forInstance(getObject()));
123-
}
124-
125113
}

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)