Record Class ResolvedApplicationPrivilege

java.lang.Object
java.lang.Record
org.elasticsearch.xpack.core.security.authz.privilege.ResolvedApplicationPrivilege
Record Components:
privilege - the resolved application privilege (application name, action automaton/predicate)
resources - the resources the grant applies to (e.g. space:default, or * for all)

public record ResolvedApplicationPrivilege(ApplicationPrivilege privilege, Set<String> resources) extends Record
A single application-privilege grant on a role, after the role's requested privilege names have been resolved against the stored ApplicationPrivilegeDescriptors.

The privilege() already carries the union automaton of every action the grant authorizes (resolved stored-privilege actions and any raw action patterns written directly under privileges[]), exposed via Privilege.predicate(). That automaton is built once during role resolution and cached, so an ImplicitPrivilegesProvider can test whether a specific action is granted with a single privilege().predicate().test(action) rather than reconstructing a matcher over the (potentially thousands of) stored actions on the role-build hot path.

  • Constructor Details

    • ResolvedApplicationPrivilege

      public ResolvedApplicationPrivilege(ApplicationPrivilege privilege, Set<String> resources)
      Creates an instance of a ResolvedApplicationPrivilege record class.
      Parameters:
      privilege - the value for the privilege record component
      resources - the value for the resources record component
  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • privilege

      public ApplicationPrivilege privilege()
      Returns the value of the privilege record component.
      Returns:
      the value of the privilege record component
    • resources

      public Set<String> resources()
      Returns the value of the resources record component.
      Returns:
      the value of the resources record component