Record Class AuthorizationCodeOAuthFlow

java.lang.Object
java.lang.Record
org.a2aproject.sdk.spec.AuthorizationCodeOAuthFlow
Record Components:
authorizationUrl - URL for the authorization endpoint where users authenticate (required)
refreshUrl - URL for obtaining refresh tokens (optional)
scopes - map of available OAuth scopes to their descriptions (required)
tokenUrl - URL for the token endpoint where codes are exchanged for tokens (required)
pkceRequired - Indicates if PKCE (RFC 7636) is required for this flow. (required)

public record AuthorizationCodeOAuthFlow(String authorizationUrl, String refreshUrl, Map<String,String> scopes, String tokenUrl, boolean pkceRequired) extends Record
Configuration for the OAuth 2.0 Authorization Code flow.

The authorization code flow is the most secure OAuth 2.0 flow, recommended for server-side applications. It involves redirecting the user to an authorization server, obtaining an authorization code, and then exchanging that code for an access token.

This flow is suitable when the client can securely store client credentials and the authorization code can be exchanged server-side.

See Also:
  • Constructor Details

    • AuthorizationCodeOAuthFlow

      public AuthorizationCodeOAuthFlow(String authorizationUrl, String refreshUrl, Map<String,String> scopes, String tokenUrl, boolean pkceRequired)
      Compact constructor that validates required fields.
      Parameters:
      authorizationUrl - the authorizationUrl parameter (see class-level JavaDoc)
      refreshUrl - the refreshUrl parameter (see class-level JavaDoc)
      scopes - the scopes parameter (see class-level JavaDoc)
      tokenUrl - the tokenUrl parameter (see class-level JavaDoc)
      pkceRequired - Indicates if PKCE (RFC 7636) is required for this flow. (required)
      Throws:
      IllegalArgumentException - if authorizationUrl, scopes, or tokenUrl is null
  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • authorizationUrl

      public String authorizationUrl()
      Returns the value of the authorizationUrl record component.
      Returns:
      the value of the authorizationUrl record component
    • refreshUrl

      public String refreshUrl()
      Returns the value of the refreshUrl record component.
      Returns:
      the value of the refreshUrl record component
    • scopes

      public Map<String,String> scopes()
      Returns the value of the scopes record component.
      Returns:
      the value of the scopes record component
    • tokenUrl

      public String tokenUrl()
      Returns the value of the tokenUrl record component.
      Returns:
      the value of the tokenUrl record component
    • pkceRequired

      public boolean pkceRequired()
      Returns the value of the pkceRequired record component.
      Returns:
      the value of the pkceRequired record component