Skip to main content

Authava Spring Client

The Authava Spring client provides seamless integration with Spring Boot applications, making it easy to add authentication to your Java applications.

GitHub Repository

The Spring client is available on GitHub at:

https://github.com/authava/spring

Installation

Add the Authava Spring client to your project using Maven:

<dependency>
<groupId>com.authava</groupId>
<artifactId>authava-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>

Or with Gradle:

implementation 'com.authava:authava-spring-boot-starter:1.0.0'

Configuration

Configure the Authava Spring client in your application.properties or application.yml file:

authava:
domain: auth.yourdomain.com
client-id: your-client-id
client-secret: your-client-secret
audience: your-api-audience

Basic Usage

Enable Authava authentication in your Spring Boot application:

import com.authava.spring.EnableAuthava;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableAuthava
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

Secure your endpoints with Spring Security annotations:

import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ApiController {

@GetMapping("/api/public")
public String publicEndpoint() {
return "This is a public endpoint";
}

@GetMapping("/api/private")
@PreAuthorize("isAuthenticated()")
public String privateEndpoint() {
return "This is a private endpoint";
}

@GetMapping("/api/admin")
@PreAuthorize("hasAuthority('ROLE_ADMIN')")
public String adminEndpoint() {
return "This is an admin endpoint";
}
}

Features

  • Spring Security Integration: Seamless integration with Spring Security
  • JWT Validation: Automatic validation of JWT tokens
  • Role-Based Access Control: Support for role-based authorization
  • User Details Service: Custom user details service for Spring Security
  • Customizable Configuration: Flexible configuration options

Advanced Configuration

For more advanced configuration options and detailed documentation, please refer to the GitHub repository.