or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

custom-tokens.mdindex.mdoauth1a-providers.mdoauth2-providers.mdspecialized-services.mdtoken-extractors.md
tile.json

tessl/maven-com-github-scribejava--scribejava-apis

OAuth client library APIs for 50+ major OAuth 1.0a and 2.0 providers

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.github.scribejava/scribejava-apis@8.3.x

To install, run

npx @tessl/cli install tessl/maven-com-github-scribejava--scribejava-apis@8.3.0

index.mddocs/

ScribeJava APIs

ScribeJava APIs is a comprehensive OAuth client library module that provides ready-to-use implementations for over 50 major OAuth 1.0a and 2.0 providers including Google, Facebook, Twitter, GitHub, LinkedIn, Instagram, and many others. It offers a simple configuration approach with thread-safe operations and supports various HTTP clients while maintaining high performance and extensive compatibility from Java 7 onwards.

Package Information

  • Package Name: scribejava-apis
  • Package Type: maven
  • Language: Java
  • Group ID: com.github.scribejava
  • Artifact ID: scribejava-apis
  • Installation: implementation 'com.github.scribejava:scribejava-apis:8.3.3' (Gradle) or <dependency><groupId>com.github.scribejava</groupId><artifactId>scribejava-apis</artifactId><version>8.3.3</version></dependency> (Maven)

Core Imports

import com.github.scribejava.apis.GoogleApi20;
import com.github.scribejava.apis.FacebookApi;
import com.github.scribejava.apis.GitHubApi;
import com.github.scribejava.apis.TwitterApi;
import com.github.scribejava.core.builder.ServiceBuilder;
import com.github.scribejava.core.oauth.OAuth20Service;
import com.github.scribejava.core.oauth.OAuth10aService;

Basic Usage

import com.github.scribejava.apis.GoogleApi20;
import com.github.scribejava.core.builder.ServiceBuilder;
import com.github.scribejava.core.oauth.OAuth20Service;

// Create OAuth service for Google
OAuth20Service service = new ServiceBuilder("your_client_id")
    .apiSecret("your_client_secret")
    .callback("http://localhost:8080/callback")
    .build(GoogleApi20.instance());

// Get authorization URL
String authorizationUrl = service.getAuthorizationUrl();

// Exchange authorization code for access token
OAuth2AccessToken accessToken = service.getAccessToken("authorization_code");

// Use access token to make authenticated requests
OAuthRequest request = new OAuthRequest(Verb.GET, "https://www.googleapis.com/oauth2/v1/userinfo");
service.signRequest(accessToken.getAccessToken(), request);
Response response = service.execute(request);

Architecture

ScribeJava APIs is built around several key components:

  • OAuth API Providers: 63 implementation classes for specific OAuth providers, each extending either DefaultApi20 (OAuth 2.0) or DefaultApi10a (OAuth 1.0a)
  • Singleton Pattern: All API provider classes use the singleton pattern with instance() factory methods
  • Specialized Services: Custom OAuth service implementations for providers requiring special handling (Facebook, Instagram, Mail.ru, etc.)
  • Token Extractors: Custom token extractors for providers with non-standard token response formats
  • Custom Token Types: Extended token classes that include provider-specific metadata (Salesforce, Slack, OpenID Connect, etc.)
  • URL Configuration: Each provider defines authorization, token, and refresh endpoints specific to their OAuth implementation

Capabilities

OAuth 2.0 Provider APIs

Core OAuth 2.0 provider implementations supporting authorization code flow, client credentials, device authorization grant, and PKCE extensions. Covers 50+ major providers including social networks, cloud services, and enterprise identity providers.

public abstract class DefaultApi20 {
    public static ApiClass instance();
    public String getAccessTokenEndpoint();
    protected String getAuthorizationBaseUrl();
    public TokenExtractor<OAuth2AccessToken> getAccessTokenExtractor();
    public String getRevokeTokenEndpoint();
    public String getRefreshTokenEndpoint();
    public ClientAuthentication getClientAuthentication();
    public String getDeviceAuthorizationEndpoint();
    public DeviceAuthorizationJsonExtractor getDeviceAuthorizationExtractor();
}

OAuth 2.0 Providers

OAuth 1.0a Provider APIs

OAuth 1.0a provider implementations supporting the three-legged authorization flow with request tokens and signature-based authentication. Includes Twitter, Yahoo, Flickr, and other legacy OAuth providers.

public abstract class DefaultApi10a {
    public static ApiClass instance();
    public String getAccessTokenEndpoint();
    public String getRequestTokenEndpoint();
    public String getAuthorizationBaseUrl();
}

OAuth 1.0a Providers

Specialized Services

Custom OAuth service implementations that extend the base OAuth functionality with provider-specific features like Facebook's app secret proof, Mail.ru's signature requirements, and Instagram's specialized token handling.

public class FacebookService extends OAuth20Service {
    public void signRequest(String accessToken, OAuthRequest request);
}

public class MailruOAuthService extends OAuth20Service {
    public void signRequest(String accessToken, OAuthRequest request);
}

Specialized Services

Custom Token Types

Extended OAuth token classes that include provider-specific metadata and additional fields beyond the standard access token, refresh token, and expiration information.

public class SalesforceToken extends OAuth2AccessToken {
    public String getInstanceUrl();
}

public class OpenIdOAuth2AccessToken extends OAuth2AccessToken {
    public String getIdToken();
    public JsonNode getIdTokenClaims();
}

public class VKOAuth2AccessToken extends OAuth2AccessToken {
    public String getEmail();
}

Custom Token Types

Token Extractors

Custom token extractors for providers that use non-standard JSON response formats or require special error handling beyond the default OAuth 2.0 token response format.

public abstract class OAuth2AccessTokenJsonExtractor implements TokenExtractor<OAuth2AccessToken> {
    public OAuth2AccessToken extract(Response response) throws IOException;
    public void generateError(Response response) throws IOException;
}

Token Extractors

Common Types

// Core ScribeJava types from scribejava-core
import com.github.scribejava.core.model.OAuth2AccessToken;
import com.github.scribejava.core.model.OAuthRequest;
import com.github.scribejava.core.model.Response;
import com.github.scribejava.core.model.Verb;
import com.github.scribejava.core.oauth.OAuth20Service;
import com.github.scribejava.core.oauth.OAuth10aService;
import com.github.scribejava.core.builder.ServiceBuilder;
import com.github.scribejava.core.extractors.TokenExtractor;
import com.github.scribejava.core.oauth2.clientauthentication.ClientAuthentication;