Ir al contenido

PrincipalUtils

Clase de utilidades con métodos estáticos auxiliares para consultar la identidad, roles, tenant y contexto de autenticación del usuario actual desde el contexto de Spring Security. Todos los métodos son estáticos.

Descripción:

Método Valores de retorno Descripción
getUser() String Devuelve el nombre de usuario del usuario actualmente autenticado desde el contexto de Spring Security.

Ejemplo:

System.out.println(PrincipalUtils.getUser()); // "jsmith"

Descripción:

Método Valores de retorno Descripción
isUser(String userId) boolean Devuelve true si el usuario actualmente autenticado tiene el nombre de usuario dado.

Descripción:

Método Valores de retorno Descripción
getUserByToken(String token) String Devuelve el nombre de usuario asociado al token de sesión dado. Lanza AccessDeniedException si no se encuentra el token.

Descripción:

Método Valores de retorno Descripción
getTenantId() long Devuelve el ID del tenant del usuario actualmente autenticado. Recurre a Config.DEFAULT_TENANT_ID si no puede resolverse el tenant.

Ejemplo:

long tenantId = PrincipalUtils.getTenantId();
System.out.println("Tenant: " + tenantId);

Descripción:

Método Valores de retorno Descripción
getTenantIdByToken(String token) long Devuelve el ID del tenant asociado al token de sesión dado. Lanza AccessDeniedException si no se encuentra el token.

Descripción:

Método Valores de retorno Descripción
getRoles() Set Devuelve el conjunto de nombres de rol concedidos al usuario actualmente autenticado. Devuelve un conjunto vacío si no está autenticado.

Descripción:

Método Valores de retorno Descripción
hasRole(String role) boolean Devuelve true si el usuario actualmente autenticado tiene el rol dado.

Ejemplo:

if (PrincipalUtils.hasRole("ROLE_ADMIN")) {
System.out.println("User is admin");
}
Set<String> roles = PrincipalUtils.getRoles();
System.out.println("Roles: " + roles);

Descripción:

Método Valores de retorno Descripción
isRegularUser() boolean Devuelve true si el usuario actual no tiene el rol de admin por defecto.

Descripción:

Método Valores de retorno Descripción
isAdminUser() boolean Devuelve true si el usuario actual tiene el rol de admin por defecto.

Descripción:

Método Valores de retorno Descripción
isSystemUser() boolean Devuelve true si el usuario actual es el usuario interno de sistema usado para operaciones en segundo plano.

Descripción:

Método Valores de retorno Descripción
isSuperUser() boolean Devuelve true si el usuario actual es el usuario administrador por defecto (okmAdmin).

Descripción:

Método Valores de retorno Descripción
hasFullAccess() boolean Devuelve true si el usuario actual tiene acceso sin restricciones al repositorio — es decir, es el usuario de sistema, el superusuario, o tiene el rol de admin.

Ejemplo:

package com.openkm;
import com.openkm.principal.PrincipalUtils;
public class Test {
public static void main(String[] args) {
try {
System.out.println("User: " + PrincipalUtils.getUser());
System.out.println("TenantId: " + PrincipalUtils.getTenantId());
System.out.println("IsAdmin: " + PrincipalUtils.isAdminUser());
System.out.println("HasFullAccess: " + PrincipalUtils.hasFullAccess());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
getAuthentication() Authentication Devuelve el objeto Authentication de Spring Security para la solicitud actual. Intenta primero con el SecurityHolder personalizado, luego con SecurityContextHolder, y después con la solicitud HTTP. Devuelve null si no se encuentra ningún usuario autenticado.

Descripción:

Método Valores de retorno Descripción
getAuthenticationByToken(String token) Authentication Devuelve el objeto Authentication de Spring Security para el token de sesión dado. Lanza AccessDeniedException si no se encuentra el token en DbSessionManager.

Descripción:

Método Valores de retorno Descripción
getRemoteAddress() String Devuelve la dirección IP remota del usuario actualmente autenticado, o null si no está disponible.