Este contenido no está disponible en el idioma seleccionado.
Chapter 1. Quarkus Security overview
Quarkus Security is a framework that provides the architecture, multiple authentication and authorization mechanisms, and other tools to build secure and production-quality Java applications.
Before building security into your Quarkus applications, learn about the Quarkus Security architecture and the different authentication mechanisms and features you can use.
1.1. Key features of Quarkus Security Copiar enlaceEnlace copiado en el portapapeles!
The Quarkus Security framework provides built-in security authentication mechanisms for Basic, Form-based, and mutual TLS (mTLS) authentication. You can also use other well-known authentication mechanisms, such as OpenID Connect (OIDC). Authentication mechanisms depend on Identity providers to verify the authentication credentials and map them to a SecurityIdentity
instance with the username, roles, original authentication credentials, and other attributes.
Red Hat build of Quarkus also includes built-in security to allow for role-based access control (RBAC) based on the common security annotations @RolesAllowed
, @DenyAll
, @PermitAll
on REST endpoints, and Contexts and Dependency Injection (CDI) beans. For more information, see the Quarkus Authorization of web endpoints guide.
Quarkus Security also supports the following features:
- Proactive authentication
- Secure connections with SSL/TLS
- Cross-origin resource sharing
- Cross-Site Request Forgery (CSRF) prevention
- SameSite cookies
- Secrets engines
- Secure auto-generated resources by REST Data with Panache
- Secure serialization
- Security vulnerability detection and National Vulnerability Database (NVD) registration
Quarkus Security is also highly customizable. For more information, see the Quarkus Security tips and tricks guide.
1.2. Getting started with Quarkus Security Copiar enlaceEnlace copiado en el portapapeles!
To get started with security in Quarkus, consider securing your Quarkus application endpoints with the built-in Quarkus Basic authentication and the Jakarta Persistence identity provider and enabling role-based access control.
Complete the steps in the Getting started with Security by using Basic authentication and Jakarta Persistence tutorial.
After successfully securing your Quarkus application with Basic authentication, you can increase the security further by adding more advanced authentication mechanisms, for example, the Quarkus OpenID Connect (OIDC) authorization code flow mechanism guide.
1.3. Quarkus Security testing Copiar enlaceEnlace copiado en el portapapeles!
For guidance on testing Quarkus Security features and ensuring that your Quarkus applications are securely protected, see the Security testing guide.
1.4. More about security features in Quarkus Copiar enlaceEnlace copiado en el portapapeles!
1.4.1. WebSockets Next security Copiar enlaceEnlace copiado en el portapapeles!
The quarkus-websockets-next
extension provides a modern, efficient implementation of the WebSocket API. It also provides an integration with Quarkus security. For more information, see the Security section of the Quarkus "WebSockets Next reference" guide.
1.4.2. Cross-origin resource sharing Copiar enlaceEnlace copiado en el portapapeles!
To make your Quarkus application accessible to another application running on a different domain, you need to configure cross-origin resource sharing (CORS). For more information about the CORS filter Quarkus provides, see the CORS filter section of the Quarkus "Cross-origin resource sharing" guide.
1.4.3. Cross-Site Request Forgery (CSRF) prevention Copiar enlaceEnlace copiado en el portapapeles!
Quarkus Security provides a Quarkus REST (formerly RESTEasy Reactive) filter that can protect your applications against a Cross-Site Request Forgery attack. For more information, see the Quarkus Cross-Site Request Forgery Prevention guide.
1.4.4. SameSite cookies Copiar enlaceEnlace copiado en el portapapeles!
You can add a SameSite cookie property to any of the cookies set by a Quarkus endpoint. For more information, see the SameSite cookies section of the Quarkus "HTTP reference" guide.
1.4.5. Secrets engines Copiar enlaceEnlace copiado en el portapapeles!
You can use secrets engines with Quarkus to store, generate, or encrypt data.
Quarkus provides additional extensions in Quarkiverse for securely storing credentials, for example, Quarkus and HashiCorp Vault.
1.5. Secrets in environment properties Copiar enlaceEnlace copiado en el portapapeles!
Quarkus provides support to store secrets in environment properties. For more information, see the Quarkus store secrets in an environment properties file guide.
1.5.1. Secure serialization Copiar enlaceEnlace copiado en el portapapeles!
If your Quarkus Security architecture includes Quarkus REST (formerly RESTEasy Reactive) and Jackson, Quarkus can limit the fields included in JSON serialization based on the configured security. For more information, see the JSON serialization section of the Quarkus “Writing REST services with Quarkus REST (formerly RESTEasy Reactive)” guide.
1.5.2. Secure auto-generated resources by REST Data with Panache Copiar enlaceEnlace copiado en el portapapeles!
If you use the REST Data with Panache extension to auto-generate your resources, you can still use security annotations within the package jakarta.annotation.security
. For more information, see the Securing endpoints section of the Quarkus "Generating Jakarta REST resources with Panache" guide.
1.6. Security vulnerability detection Copiar enlaceEnlace copiado en el portapapeles!
Most Quarkus tags get reported in the US National Vulnerability Database (NVD). For information about security vulnerabilities, see the Security vulnerability detection and reporting in Quarkus guide.