Class SpringAuthorizationEventPublisher

java.lang.Object
org.springframework.security.authorization.SpringAuthorizationEventPublisher
All Implemented Interfaces:
AuthorizationEventPublisher

public final class SpringAuthorizationEventPublisher extends Object implements AuthorizationEventPublisher
An implementation of AuthorizationEventPublisher that uses Spring's event publishing support. Because AuthorizationGrantedEvents typically require additional business logic to decide whether to publish, this implementation only publishes AuthorizationDeniedEvents.
Since:
5.7
  • Constructor Details

    • SpringAuthorizationEventPublisher

      public SpringAuthorizationEventPublisher(org.springframework.context.ApplicationEventPublisher eventPublisher)
      Construct this publisher using Spring's ApplicationEventPublisher
      Parameters:
      eventPublisher -
  • Method Details

    • publishAuthorizationEvent

      public <T> void publishAuthorizationEvent(Supplier<Authentication> authentication, T object, @Nullable AuthorizationResult result)
      Publish the given details in the form of an event, typically AuthorizationGrantedEvent or AuthorizationDeniedEvent. Note that success events can be very noisy if enabled by default. Because of this implementations may choose to drop success events by default.
      Specified by:
      publishAuthorizationEvent in interface AuthorizationEventPublisher
      Type Parameters:
      T - the secured object's type
      Parameters:
      authentication - a Supplier for the current user
      object - the secured object
      result - AuthorizationResult the result about whether the user may access the secured object
    • setShouldPublishResult

      public void setShouldPublishResult(Predicate<AuthorizationResult> shouldPublishResult)
      Use this predicate to test whether to publish an event.

      Since you cannot publish a null event, checking for null is already performed before this test is run

      Parameters:
      shouldPublishResult - the test to perform on non-null events
      Since:
      7.0