io.github.encryptorcode:iam-oauth

The quickest way to support authentication on your app.


Keywords
authentication, cookie, login, login-system, oauth, security
License
MIT

Documentation

I AM open oauth

Maven Central License Code Climate Dependabot Sonatype Nexus (Snapshots)

The quickest way to support authentication on your app.

Installation

Maven

<dependency>
  <groupId>io.github.encryptorcode</groupId>
  <artifactId>iam-oauth</artifactId>
  <version>2.0.1</version>
</dependency>

Groovy

implementation 'io.github.encryptorcode:iam-oauth:2.0.1'

Kotlin DSL

implementation("io.github.encryptorcode:iam-oauth:2.0.1")

What?

This is a library for all your authentication needs. From the scratch it's made to give you full flexibility for advanced implementation, also making sure it's easy to implement for starters.

Usage

You need to write bare minimal to set up your authentication.

AuthenticationInitializer.newInstance(Session::new, User::new)
        .addOAuthProvider(new GoogleAuthenticationProvider())
        .initialize();
  • GoogleAuthenticationProvider An implementation for supporting Oauth 2.0 authentication using Google.
  • We also have ready-made implementations for supporting storage with files, db and redis.

For complete example, check example folder given in the repository.

Setting it up

To completely customising and setting up authentication you can follow the guides below.

  1. Configure your oauth provider(s)
  2. Create your User and Session implementations
  3. Customise your way to store of Users, Session and AuthenticationDetails
  4. Setup your security for your users
  5. Handle server requests

API

Getting instance of authentication service

AuthenticationService<Session, User> authenticationService = AuthenticationService.getInstance();

Getting the current user

User currentUser = authenticationService.getCurrentUser();

Getting the current session

Session currentSession = authenticationService.getCurrentUser();

Note: Both user and session will be set only in a HttpRequest. It will get a null if you invoke this on a TimerTask or Scheduler.

License

MIT