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).
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);
ScribeJava v9 est conçu pour être étendu sans modifier le code source original.
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");
}
}
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);
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é