Package io.vertx.ext.auth.authorization

## Interface Authorization

- All Known Subinterfaces:
    `AndAuthorization`, `NotAuthorization`, `OrAuthorization`, `PermissionBasedAuthorization`, `RoleBasedAuthorization`, `WildcardPermissionBasedAuthorization`

      public interface Authorization

  Interface representing any kind of authorization such as:
  - Role based authorization
  - Permission based authorization
  - Logical authorization (AND, OR, NOT)
  - Time based authorization (ie: allow access the last 5 days of the month, from 8am till 10am, etc.)
  - Context based authorization (ie: allow access if the ip address is 'xxx.xxx.xxx.xxx')
  - Custom based authorization (ie: based on a script or hard-coded code specific to an application)
  - etc.
  The following implementations are provided out of the box:
  - `AndAuthorization`
  - `NotAuthorization`
  - `OrAuthorization`
  - `PermissionBasedAuthorization`
  - `RoleBasedAuthorization`
  - `WildcardPermissionBasedAuthorization`
  Author:
    Stephane Bastian

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `match​(AuthorizationContext context)` | this methods verifies whether or not the authorization match the specified context.
    `default boolean` | `match​(User user)` | this methods verifies whether or not the authorization match the specified user.
    `default JsonObject` | `toJson()` |
    `boolean` | `verify​(Authorization authorization)` | this method verifies whether or not the authorization implies the specified authorization.

- - ### Method Detail

    - #### match

          boolean match​(AuthorizationContext context)

      this methods verifies whether or not the authorization match the specified context.
      Parameters:
        `context` - the context.
      Returns:
        true if there's a match.

    - #### match

          default boolean match​(User user)

      this methods verifies whether or not the authorization match the specified user. Internally a basic context is created with the user and the method delegates to `match(AuthorizationContext)`
      Parameters:
        `user` - the user.
      Returns:
        true if there's a match

    - #### verify

          boolean verify​(Authorization authorization)

      this method verifies whether or not the authorization implies the specified authorization. Note that it doesn't always mean an exact match. For instance, in the case of a `WildcardPermissionBasedAuthorization`, this method may return true even if the permissions are different WildcardPermissionBasedAuthorization.create('*').verify(WildcardPermissionBasedAuthorization.create('anypermission')) would return true
      Parameters:
        `authorization` - the authorization.
      Returns:
        true if implies the argument.

    - #### toJson

          default JsonObject toJson()