Class ExampleAnnotationBasedMethodInvocationAuthorizer

java.lang.Object
org.apache.geode.examples.security.ExampleAnnotationBasedMethodInvocationAuthorizer
All Implemented Interfaces:
MethodInvocationAuthorizer

public class ExampleAnnotationBasedMethodInvocationAuthorizer extends Object implements MethodInvocationAuthorizer
  • Constructor Details

    • ExampleAnnotationBasedMethodInvocationAuthorizer

      public ExampleAnnotationBasedMethodInvocationAuthorizer()
  • Method Details

    • initialize

      public void initialize(Cache cache, Set<String> parameters)
      Description copied from interface: MethodInvocationAuthorizer
      Initializes the MethodInvocationAuthorizer using a Cache and a Set of String parameters.

      This method exists to allow user-specified method authorizers to be configured and used at runtime. If this method is not overridden in a user-specified authorizer then that authorizer will not be configurable.

      Specified by:
      initialize in interface MethodInvocationAuthorizer
      Parameters:
      cache - the Cache to which the MethodInvocationAuthorizer will belong
      parameters - a Set of String that will be used to configure the
    • authorize

      public boolean authorize(Method method, Object target)
      Description copied from interface: MethodInvocationAuthorizer
      Executes the authorization logic to determine whether the method is allowed to be executed on the target object instance.

      Implementation Note: the query engine will remember whether the method invocation has been already authorized or not for the current query context, so this method will be called once in the lifetime of a query for every new method seen while traversing the objects. Nevertheless, the implementation should be lighting fast as it will be called by the OQL engine in runtime during the query execution.

      Specified by:
      authorize in interface MethodInvocationAuthorizer
      Parameters:
      method - the Method that should be authorized.
      target - the Object on which the Method will be executed.
      Returns:
      true if the method is annotated with ExampleAnnotationBasedMethodInvocationAuthorizer.Authorized and not permanently forbidden, false otherwise