Skip to content

Q300Z/scribejava

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,356 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScribeJava :: La bibliothèque OAuth simple et robuste pour Java

Tests Dernière Release Licence MIT Android Ready

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.


📖 Sommaire

  1. Pourquoi ScribeJava ?
  2. Architecture Modulaire
  3. Démarrage Rapide
  4. Installation
  5. Compatibilité & Android
  6. Documentation & Exemples

🌟 Pourquoi ScribeJava ?

ScribeJava est le choix idéal pour les projets qui refusent l'opacité des frameworks "tout-en-un".

📊 Matrice de Choix : ScribeJava vs Frameworks Lourds

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

🏗️ Architecture Modulaire

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
Loading

🚀 Démarrage Rapide

OAuth 2.0 avec PKCE (Recommandé)

// 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);

OpenID Connect Discovery

// 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));

📦 Installation

ScribeJava est distribué via GitHub Releases.

💡 Note : Remplacez 9.0.0 par la version actuelle dans les exemples ci-dessous.

Maven

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=jar

Puis 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.

Gradle (Android & JVM)

dependencies {
    implementation files('libs/scribejava-core-9.0.0.jar')
}

📱 Compatibilité

  • Java : Compatible de Java 8 à Java 25.
  • Android : Support complet. Utilisez le client OkHttp pour de meilleures performances sur mobile.

📚 Documentation & Exemples

🏗️ API Javadoc

Nous maintenons une couverture Javadoc de 100%.


Soutenez-nous ! Mettez une étoile sur le projet pour nous aider à grandir.

About

Simple OAuth library for Java

Resources

License

Contributing

Stars

Watchers

Forks

Languages

  • Java 99.7%
  • Makefile 0.3%