Skip to main content

Alpura Back Java Lib Security V.1.1

Manual de implementación de librería de seguridad.


📦 Requisitos

  • Java JDK: 21 (Temurin LTS)
  • Spring Boot: 3.4.4 o superior
  • Gestor de dependencias: Maven o Gradle

⚙️ Instalación

Maven

<dependency>
<groupId>com.alpura</groupId>
<artifactId>back-java-lib-security</artifactId>
<version>1.1</version>
</dependency>

la librería de commons ya la incluye

<dependency>
<groupId>com.alpura</groupId>
<artifactId>back-java-lib-common-utilities</artifactId>
<version>1.8</version>
</dependency>

🛠️ Configuración

Esta configuración debe realizarse en el archivo application.yml de tu servicio. Aquí un ejemplo de cómo quedaría:

spring:
security:
oauth2:
resourceserver:
jwt:
issuer-uri: https://hub-uat-login.alpura.com/auth/realms/Alpura
jwk-set-uri: https://hub-uat-login.alpura.com/auth/realms/Alpura/protocol/openid-connect/certs
client:
registration:
keycloak:
client-id: MobileApp
client-secret: KkW4Z6Y28IhMqpjvFCN4jS5MTO253Sj5
authorization-grant-type: client_credentials
provider: keycloak
provider:
keycloak:
issuer-uri: https://hub-uat-login.alpura.com/auth/realms/Alpura
token-uri: https://hub-uat-login.alpura.com/auth/realms/Alpura/protocol/openid-connect/token

🧭 Configuración del Escaneo de Componentes

Para que la librería de seguridad funcione correctamente, es necesario escanear los paquetes donde se encuentran los componentes, anotaciones y aspectos.
Asegúrate de incluir los siguientes paquetes en la anotación @ComponentScan de tu clase principal (@SpringBootApplication):

@ComponentScan({
"com.alpura.java.arch",
"com.alpura.utilities.web",
"com.alpura.utilities.annotation.aspectj",
"com.alpura.telemetry",
"com.alpura.security"
})

🔧 Compilación del Proyecto

  1. Clona el repositorio desde GitLab:
git clone "url"
cd "local"

mvn clean install

Salida esperada:
[INFO] BUILD SUCCESS


🔧 Extracción de token a través del controlador

Extiende tu controlador del BaseController

public class MenuController extends BaseController {

El siguiente código hace que nuestro request tenga información importante de loggeo como el token entre otros.

RequestVO<Integer> request = getRequest();

📌 Notas Finales

  • Agrega el siguiente código en el archivo application.yml del microservicio consumidor.
alpuraSecurity:
evaluateRoles: false