ScribeJava est une bibliothèque client OAuth légère, thread-safe et modulaire. Elle est conçue pour les développeurs qui exigent un contrôle total, une sécurité maximale et zéro dépendance inutile.
- Pourquoi ScribeJava ?
- Architecture Modulaire
- Démarrage Rapide
- Installation
- Compatibilité & Android
- Documentation & Exemples
ScribeJava est le choix idéal pour les projets qui refusent l'opacité des frameworks "tout-en-un".
| Caractéristique | ScribeJava v9 | Spring Security / Pac4j |
|---|---|---|
| Poids (Core) | < 1 Mo | > 50 Mo (avec dépendances) |
| Dépendances | Zéro (JDK natif) | Énorme graphe de transitivité |
| Courbe d'apprentissage | Minutes | Jours / Semaines |
| Contrôle du flux | Total | Abstraction rigide |
| Android Ready | Oui (Natif) | Difficile / Incompatible |
ScribeJava est conçu comme un écosystème de composants indépendants :
graph TD
subgraph Core
C[scribejava-core]
end
subgraph Extensions
C --> O[scribejava-oidc]
C --> A[scribejava-apis]
end
subgraph Transport
C --> H1[scribejava-httpclient-okhttp]
C --> H2[scribejava-httpclient-armeria]
end
// 1. Initialisation
OAuth20Service service = new ServiceBuilder(clientId)
.apiSecret(clientSecret)
.build(GitHubApi.instance());
// 2. PKCE (Sécurité renforcée)
PKCE pkce = PKCEService.defaultInstance().generatePKCE();
String authUrl = service.createAuthorizationUrlBuilder().pkce(pkce).build();
// 3. Récupération du Token
AuthorizationCodeGrant grant = new AuthorizationCodeGrant(code);
grant.setPkceCodeVerifier(pkce.getCodeVerifier());
OAuth2AccessToken token = service.getAccessToken(grant);
// 4. Appel API
OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.github.com/user");
service.signRequest(token, request);
Response response = service.execute(request);// Découverte automatique des endpoints
OidcDiscoveryService discovery = new OidcDiscoveryService(
"https://accounts.google.com",
new JDKHttpClient(JDKHttpClientConfig.defaultConfig()),
"MonApp/1.0"
);
OidcProviderMetadata metadata = discovery.getMetadata();
OidcService service = (OidcService) new ServiceBuilder(id).build(new DefaultOidcApi20(metadata));ScribeJava est distribué via GitHub Releases.
💡 Note : Remplacez 9.0.0 par la version actuelle dans les exemples ci-dessous.
Installez le JAR téléchargé localement :
mvn install:install-file -Dfile=scribejava-core-9.0.0.jar -DgroupId=com.github.scribejava -DartifactId=scribejava-core -Dversion=9.0.0 -Dpackaging=jarPuis ajoutez la dépendance :
<dependency>
<groupId>com.github.scribejava</groupId>
<artifactId>scribejava-core</artifactId>
<version>9.0.0</version>
</dependency>🛠️ Un problème lors de l'installation ou du build ? Consultez le Guide de Dépannage.
dependencies {
implementation files('libs/scribejava-core-9.0.0.jar')
}- Java : Compatible de Java 8 à Java 25.
- Android : Support complet. Utilisez le client OkHttp pour de meilleures performances sur mobile.
- ⚡ Guide de Migration - Passer de la v8 à la v9.
- 🤝 Guide du Contributeur - Architecture et Standards.
- 🛡️ Sécurité Avancée (DPoP/PAR) - Guide de mise en production.
- 🛠️ Dépannage & Logs - Solutions aux erreurs et Débogage.
- 📖 **Modules ** : Core | OIDC | Catalogue APIs
- 🎯 Exemples :
Nous maintenons une couverture Javadoc de 100%.
- Consulter la Javadoc en ligne
- Générer localement :
make doc(puis ouvreztarget/site/apidocs/index.html).
⭐ Soutenez-nous ! Mettez une étoile sur le projet pour nous aider à grandir.