io.vertx.ext.auth.authentication

## Class TokenCredentials

- java.lang.Object
- - io.vertx.ext.auth.authentication.TokenCredentials

- All Implemented Interfaces:
    Credentials

      public class TokenCredentials
      extends Object
      implements Credentials

  Credentials used by any `AuthenticationProvider` that requires Tokens, such as OAuth2 or JWT to perform its authentication
  Author:
    Paulo Lopes

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `TokenCredentials()`
    `` | `TokenCredentials(JsonObject jsonObject)`
    `` | `TokenCredentials(String token)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `TokenCredentials` | `addScope(String scope)`
    `TokenCredentials` | `applyHttpChallenge(String challenge, HttpMethod method, String uri, Integer nc, String cnonce)` Applies the HTTP Authorization challenge to this Credential instance.
    `<V> void` | `checkValid(V arg)` Implementors should override this method to perform validation.
    `List<String>` | `getScopes()`
    `String` | `getToken()`
    `TokenCredentials` | `setScopes(List<String> scopes)`
    `TokenCredentials` | `setToken(String token)`
    `String` | `toHttpAuthorization()` Encodes this credential as an HTTP Authorization https://tools.ietf.org/html/rfc7235.
    `JsonObject` | `toJson()` Simple interop to downcast back to JSON for backwards compatibility.
    `String` | `toString()`

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

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

    - ### Methods inherited from interface io.vertx.ext.auth.authentication.Credentials

      `applyHttpChallenge, applyHttpChallenge`

- - ### Constructor Detail

    - #### TokenCredentials

          protected TokenCredentials()

    - #### TokenCredentials

          public TokenCredentials(String token)

    - #### TokenCredentials

          public TokenCredentials(JsonObject jsonObject)

  - ### Method Detail

    - #### getToken

          public String getToken()

    - #### setToken

          public TokenCredentials setToken(String token)

    - #### getScopes

          public List<String> getScopes()

    - #### setScopes

          public TokenCredentials setScopes(List<String> scopes)

    - #### addScope

          public TokenCredentials addScope(String scope)

    - #### checkValid

          public <V> void checkValid(V arg)
                              throws CredentialValidationException

      Description copied from interface: `Credentials`
      Implementors should override this method to perform validation. An argument is allowed to allow custom validation, for example, when given a configuration property, a specific property may be allowed to be null.
      Specified by:
        `checkValid` in interface `Credentials`
      Type Parameters:
        `V` - the generic type of the argument
      Parameters:
        `arg` - optional argument or null.
      Throws:
        `CredentialValidationException` - when the validation fails

    - #### toJson

          public JsonObject toJson()

      Description copied from interface: `Credentials`
      Simple interop to downcast back to JSON for backwards compatibility.
      Specified by:
        `toJson` in interface `Credentials`
      Returns:
        JSON representation of this credential.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### applyHttpChallenge

          public TokenCredentials applyHttpChallenge(String challenge,
                                                     HttpMethod method,
                                                     String uri,
                                                     Integer nc,
                                                     String cnonce)
                                              throws CredentialValidationException

      Description copied from interface: `Credentials`
      Applies the HTTP Authorization challenge to this Credential instance. The internal state can change to reflect the extra properties the challenge conveys. See https://tools.ietf.org/html/rfc7235 for more information.
      Specified by:
        `applyHttpChallenge` in interface `Credentials`
      Parameters:
        `challenge` - the challenge is the `WWW-Authenticate` header response from a 401 request. Null challenges are allowed, and in this case, no verification will be performed, however it is up to the implementation to permit this.
        `method` - The http method this response is responding.
        `uri` - The http uri this response is responding.
        `nc` - The client internal counter (optional).
        `cnonce` - The client internal nonce (optional).
      Returns:
        fluent self.
      Throws:
        `CredentialValidationException` - if the challenge cannot be applicable.

    - #### toHttpAuthorization

          public String toHttpAuthorization()

      Description copied from interface: `Credentials`
      Encodes this credential as an HTTP Authorization https://tools.ietf.org/html/rfc7235. Calls to this method, expect that `Credentials.applyHttpChallenge(String, HttpMethod, String, Integer, String)` has been prior executed. For some Authentication schemes, this isn't a requirement but doing so ensures that the object is on the right state.
      Specified by:
        `toHttpAuthorization` in interface `Credentials`
      Returns:
        HTTP header including scheme.

Copyright © 2021 Eclipse. All rights reserved.