scribejava

⚙️ ScribeJava Core

Le cœur du moteur OAuth. Ce module contient toute la logique de construction de requêtes, de signature et de gestion des flux (Grants).

🚀 Utilisation Standard (v9)

Exemple d’initialisation avec PKCE (recommandé) et révocation de jeton :

// 1. Configuration avec PKCE activé
OAuth20Service service = new ServiceBuilder(clientId)
    .apiSecret(secret)
    .defaultScope("read_user")
    .build(GitHubApi.instance());

// 2. Flux Authorization Code avec PKCE
PKCE pkce = service.generatePKCE();
String authUrl = service.getAuthorizationUrl(pkce, state);

// 3. Obtention du token
OAuth2AccessToken token = service.getAccessToken(new AuthorizationCodeGrant(code, pkce));

// 4. Révocation du Refresh Token (RFC 7009)
service.revokeToken(token.getRefreshToken(), TokenTypeHint.REFRESH_TOKEN);

🏗️ Architecture Extensible

ScribeJava v9 est conçu pour être étendu sans modifier le code source original.

Ajouter un nouveau type de Grant (Pattern Strategy)

Si vous avez un flux OAuth propriétaire, étendez OAuth20Grant :

public class MyCustomGrant extends OAuth20Grant {
    @Override
    public void addParameters(OAuthRequest request) {
        request.addParameter(OAuthConstants.GRANT_TYPE, "my_custom_type");
        request.addParameter("extra_param", "value");
    }
}

Injecter un Handler personnalisé

Vous pouvez intercepter les comportements du service en fournissant des Handlers spécifiques lors de la construction :

OAuth20Service service = new ServiceBuilder(clientId)
    .apiSecret(secret)
    .build(GitHubApi.instance());

// Utilisation d'un Handler pour la révocation
service.revokeToken(myToken, TokenTypeHint.ACCESS_TOKEN); 

🛰️ Clients HTTP supportés

Par défaut, le module core utilise le JDK natif (java.net.HttpURLConnection). Pour des besoins de haute performance ou asynchrones, utilisez l’un des adaptateurs officiels :


🏠 Accueil | 🔌 APIs | 🔐 OIDC | 🛡️ Sécurité