Browse Source

Add support ResolvableTypeProvider to authorization events

Closes gh-16700

Signed-off-by: Max Batischev <mblancer@mail.ru>
pull/16795/head
Max Batischev 10 months ago committed by Josh Cummings
parent
commit
ed79efc5fa
  1. 14
      core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java
  2. 14
      core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java

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

@ -19,6 +19,8 @@ package org.springframework.security.authorization.event; @@ -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; @@ -31,7 +33,7 @@ import org.springframework.security.core.Authentication;
* @since 5.7
*/
@SuppressWarnings("serial")
public class AuthorizationDeniedEvent<T> extends AuthorizationEvent {
public class AuthorizationDeniedEvent<T> extends AuthorizationEvent implements ResolvableTypeProvider {
/**
* @deprecated Please use an {@link AuthorizationResult} constructor instead
@ -59,4 +61,14 @@ public class AuthorizationDeniedEvent<T> extends AuthorizationEvent { @@ -59,4 +61,14 @@ public class AuthorizationDeniedEvent<T> 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()));
}
}

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

@ -20,6 +20,8 @@ import java.io.Serial; @@ -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; @@ -32,7 +34,7 @@ import org.springframework.security.core.Authentication;
* @since 5.7
*/
@SuppressWarnings("serial")
public class AuthorizationGrantedEvent<T> extends AuthorizationEvent {
public class AuthorizationGrantedEvent<T> extends AuthorizationEvent implements ResolvableTypeProvider {
@Serial
private static final long serialVersionUID = -8690818228055810339L;
@ -65,4 +67,14 @@ public class AuthorizationGrantedEvent<T> extends AuthorizationEvent { @@ -65,4 +67,14 @@ public class AuthorizationGrantedEvent<T> 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()));
}
}

Loading…
Cancel
Save