Learn QUARKUS-SECURITY with Real Code Examples

Updated Nov 27, 2025

Explain

Quarkus Security integrates seamlessly with Quarkus extensions like JWT, OAuth2, and LDAP for authentication and authorization.

Supports both imperative and reactive programming models.

Provides annotation-based security for methods and endpoints.

Easily configurable with properties and external identity providers.

Designed for low memory footprint and fast startup suitable for cloud-native deployments.

Core Features

Endpoint security annotations (`@RolesAllowed`, `@Authenticated`)

Identity provider integration (OIDC, LDAP, custom)

JWT token verification and generation

Security context propagation in reactive streams

Custom identity and credential handling

Basic Concepts Overview

Identity - the authenticated user or system

Credential - information proving identity (password, token, certificate)

Roles - permissions assigned to identities

Security context - runtime representation of identity and roles

Annotations - declarative way to secure methods/endpoints

Project Structure

src/main/java - application code including secured endpoints

src/main/resources - configuration files (`application.properties`)

src/test/java - security integration tests

pom.xml or build.gradle - dependency management

Optional security extensions directory for custom providers

Building Workflow

Add necessary Quarkus Security extensions

Configure authentication mechanisms (JWT/OAuth2/etc.)

Secure endpoints using `@RolesAllowed` or `@Authenticated`

Implement custom identity providers if needed

Test and verify security flow in the application

Difficulty Use Cases

Beginner: Secure single endpoint with basic authentication

Intermediate: JWT-based authentication with roles

Advanced: Reactive microservice with OAuth2 and JWT propagation

Expert: Multi-service environment with SSO via Keycloak

Enterprise: Cloud-native secured microservices with fine-grained RBAC

Comparisons

Quarkus Security vs Spring Security: Quarkus lightweight, cloud-native, reactive-ready; Spring mature with larger ecosystem

Quarkus Security vs Keycloak alone: Quarkus integrates authentication directly in code; Keycloak handles external SSO

Quarkus Security vs Micronaut Security: Both lightweight, Quarkus has native image support

Quarkus Security vs Apache Shiro: Quarkus better integrated with Quarkus ecosystem

Quarkus Security vs Node.js Passport.js: Quarkus Java-based, compiled, and reactive; Passport.js dynamic and Node-based

Versioning Timeline

2019 - Initial Quarkus Security module introduced by Red Hat

2020 - Support for JWT authentication added

2021 - OIDC and Keycloak integration

2022 - Reactive security enhancements

2025 - Fully native-image optimized, cloud-native ready

Glossary

Identity - authenticated user or system

Credential - proof of identity (password, token)

Role - permission assigned to an identity

Security context - runtime representation of identity

Annotations - declarative way to secure endpoints