Class ScopeAuthorization

java.lang.Object
io.vertx.mutiny.ext.auth.oauth2.authorization.ScopeAuthorization
All Implemented Interfaces:
MutinyDelegate, AuthorizationProvider

public class ScopeAuthorization extends Object implements AuthorizationProvider, MutinyDelegate
Scope is a mechanism in OAuth 2.0 to limit an application's access to a user's account. An application can request one or more scopes, this information is then presented to the user in the consent screen, and the access token issued to the application will be limited to the scopes granted.

The OAuth spec allows the authorization server or user to modify the scopes granted to the application compared to what is requested, although there are not many examples of services doing this in practice.

OAuth2 does not define any particular values for scopes, since it is highly dependent on the service's internal architecture and needs.

NOTE: This class has been automatically generated from the original non Mutiny-ified interface.

Author:
Paulo Lopes.
See Also:
  • ScopeAuthorization
  • Field Details

  • Constructor Details

    • ScopeAuthorization

      public ScopeAuthorization(io.vertx.ext.auth.oauth2.authorization.ScopeAuthorization delegate)
      Create a new instance of ScopeAuthorization delegating to the given (non-null) instance of ScopeAuthorization.
    • ScopeAuthorization

      public ScopeAuthorization(Object delegate)
  • Method Details

    • getDelegate

      public io.vertx.ext.auth.oauth2.authorization.ScopeAuthorization getDelegate()
      Get the delegate instance.

      This method returns the instance on which this shim is delegating the calls. And so, give you access to the bare API.

      Specified by:
      getDelegate in interface AuthorizationProvider
      Specified by:
      getDelegate in interface MutinyDelegate
      Returns:
      the delegate instance
    • getAuthorizations

      @CheckReturnValue public io.smallrye.mutiny.Uni<Void> getAuthorizations(User user)
      Updates the user with the set of authorizations.

      Unlike the bare Vert.x variant, this method returns a Uni. The uni emits the result of the operation as item. If the operation fails, the uni emits the failure.

      Don't forget to subscribe on it to trigger the operation.

      Specified by:
      getAuthorizations in interface AuthorizationProvider
      Parameters:
      user - user to lookup and update.
      Returns:
      A Uni representing the asynchronous result of this operation.
      See Also:
      • io.vertx.ext.auth.oauth2.authorization.ScopeAuthorization#getAuthorizations(User)
    • getAuthorizationsAndAwait

      public void getAuthorizationsAndAwait(User user)
      Updates the user with the set of authorizations.

      Unlike the bare Vert.x variant, this method returns a Void. This method awaits indefinitely for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

      Parameters:
      user - user to lookup and update.
      See Also:
      • io.vertx.ext.auth.oauth2.authorization.ScopeAuthorization#getAuthorizations(User)
    • getAuthorizationsAndForget

      public ScopeAuthorization getAuthorizationsAndForget(User user)
      Updates the user with the set of authorizations.

      Unlike the bare Vert.x variant, this method ignores the Void result or any failure.

      Parameters:
      user - user to lookup and update.
      Returns:
      The current instance to chain operations if needed.
      See Also:
      • io.vertx.ext.auth.oauth2.authorization.ScopeAuthorization#getAuthorizations(User)
    • create

      public static ScopeAuthorization create()
      Factory method to create a Authorization provider for Oauth 2.0 scopes using the default separator " ".
      Returns:
      a AuthorizationProvider
    • create

      public static ScopeAuthorization create(String scopeSeparator)
      Factory method to create a Authorization provider for Oauth 2.0 scopes.
      Parameters:
      scopeSeparator - the scope separator e.g.: " ", ",", "+"
      Returns:
      a AuthorizationProvider
    • create

      public static ScopeAuthorization create(String scopeSeparator, String claimKey)
      Factory method to create a Authorization provider for OpenID Connect scopes. The claim key will be used to locate the scopes from a decoded JWT.
      Parameters:
      scopeSeparator - the scope separator e.g.: " ", ",", "+"
      claimKey - the scope claim key e.g.: "scp", "scope"
      Returns:
      a AuthorizationProvider
    • separator

      public String separator()
      Returns the configured separator.
      Returns:
      the separator.
    • claimKey

      public String claimKey()
      Returns the configured claim key.
      Returns:
      the claim key.
    • encode

      public String encode(List<String> scopes)
      Returns a String with the given scopes concatenated with the given separator.
      Parameters:
      scopes - a list of scopes
      Returns:
      concatenated string.
    • getId

      public String getId()
      returns the id of the authorization provider
      Specified by:
      getId in interface AuthorizationProvider
      Returns:
    • newInstance

      public static ScopeAuthorization newInstance(io.vertx.ext.auth.oauth2.authorization.ScopeAuthorization delegate)
      Creates a new instance of the ScopeAuthorization.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object