Package org.apache.synapse.commons.throttle.core

## Class RoleBasedAccessRateController

- java.lang.Object
- - org.apache.synapse.commons.throttle.core.RoleBasedAccessRateController

-     public class RoleBasedAccessRateController
      extends Object

  Controls the access of remote callers according to the controlling policy . This provides abstraction that need to control access based on caller IP or caller domain name. This implementation is thread safe.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RoleBasedAccessRateController()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `AccessInformation` | `canAccess​(ThrottleContext throttleContext, String consumerKey, String roleID)` | To check whether caller can access not not base on the controlling policy
    `AccessInformation` | `canAccess​(ThrottleContext throttleContext, String consumerKey, String roleID, Long eventCount)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RoleBasedAccessRateController

          public RoleBasedAccessRateController()

  - ### Method Detail

    - #### canAccess

          public AccessInformation canAccess​(ThrottleContext throttleContext,
                                             String consumerKey,
                                             String roleID)
                                      throws ThrottleException

      To check whether caller can access not not base on the controlling policy
      Parameters:
        `throttleContext` - - current states of throttle - RunTime Data
        `roleID` - - Identifier for remote caller - ex: ip or domainname
      Returns:
        access information
      Throws:
        `ThrottleException`

    - #### canAccess

          public AccessInformation canAccess​(ThrottleContext throttleContext,
                                             String consumerKey,
                                             String roleID,
                                             Long eventCount)
                                      throws ThrottleException

      Throws:
        `ThrottleException`