claudegoodies
Skill

quarkus-security

From affaan-m

Buenas prácticas de seguridad en Quarkus para autenticación, autorización, JWT/OIDC, RBAC, validación de entrada, CSRF, gestión de secretos y seguridad de dependencias.

Provides Quarkus code patterns and checklists for JWT/OIDC auth, RBAC, input validation, and SQL injection prevention.

Use it when

  • Adding JWT, OIDC, or Basic Auth to a Quarkus resource
  • Implementing @RolesAllowed or SecurityIdentity-based authorization
  • Writing Bean Validation or custom validators for DTOs
  • Reviewing Panache queries for SQL injection risks

Skip it if

  • Not using Quarkus or Panache
  • Content is Spanish-language reference snippets, not an automated tool
  • Only covers code examples, no dependency-scanning or secret-management automation shown

Facts

Repository
affaan-m/ECC
Status
Actively maintained
Last commit

Source preview

The instructions Claude Code reads when this skill runs.

# Revisión de Seguridad Quarkus

Buenas prácticas para asegurar aplicaciones Quarkus con autenticación, autorización y validación de entrada.

## Cuándo Activar

- Agregar autenticación (JWT, OIDC, Basic Auth)
- Implementar autorización con @RolesAllowed o SecurityIdentity
- Validar entrada de usuario (Bean Validation, validadores personalizados)
- Configurar CORS o cabeceras de seguridad
- Gestionar secretos (Vault, variables de entorno, fuentes de configuración)
- Agregar limitación de velocidad o protección contra fuerza bruta
- Escanear dependencias por CVEs
- Trabajar con MicroProfile JWT o SmallRye JWT

## Autenticación

### Autenticación JWT

```java
// Recurso protegido con JWT
@Path("/api/protected")
@Authenticated
public class ProtectedResource {

  @Inject
  JsonWebToken jwt;

  @Inject
  SecurityIdentity securityIdentity;

  @GET
  public Response getData() {
    String username = jwt.getName();
    Set<String> roles = jwt.getGroups();
    return Response.ok(Map.of(
        "username", username,
        "roles", roles,
        "principal", securityIdentity.getPrincipal().getName()
    )).build();
  }
}
```

Configuración (application.properties):
```properties
mp.jwt.verify.publickey.location=publicKey.pem
mp.jwt.verify.issuer=https://auth.example.com

# OIDC
quarkus.oidc.auth-server-url=https://auth.example.com/realms/myrealm
quarkus.oidc.client-id=backend-service
View full source on GitHub →

Other skills