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.
Usuario actual
Sección titulada «Usuario actual»getUser
Sección titulada «getUser»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. |
getUserByToken
Sección titulada «getUserByToken»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. |
getTenantId
Sección titulada «getTenantId»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);getTenantIdByToken
Sección titulada «getTenantIdByToken»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. |
getRoles
Sección titulada «getRoles»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. |
hasRole
Sección titulada «hasRole»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);Comprobaciones de tipo de usuario
Sección titulada «Comprobaciones de tipo de usuario»isRegularUser
Sección titulada «isRegularUser»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. |
isAdminUser
Sección titulada «isAdminUser»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isAdminUser() | boolean | Devuelve true si el usuario actual tiene el rol de admin por defecto. |
isSystemUser
Sección titulada «isSystemUser»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. |
isSuperUser
Sección titulada «isSuperUser»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isSuperUser() | boolean | Devuelve true si el usuario actual es el usuario administrador por defecto (okmAdmin). |
hasFullAccess
Sección titulada «hasFullAccess»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(); } }}Acceso a la autenticación
Sección titulada «Acceso a la autenticación»getAuthentication
Sección titulada «getAuthentication»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. |
getAuthenticationByToken
Sección titulada «getAuthenticationByToken»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. |
getRemoteAddress
Sección titulada «getRemoteAddress»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. |