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/springInstallation
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.