OKMAuth
Se utiliza para gestionar la seguridad y los usuarios. Por ejemplo, añadir o quitar permisos sobre un nodo, crear o modificar usuarios u obtener los perfiles.
Conceptos básicos
Sección titulada «Conceptos básicos»La clase com.openkm.bean.Permission contiene los valores de permiso (READ, WRITE, etc.). Debe utilizarla junto con los métodos que modifican u obtienen permisos de seguridad.
En casi todos los métodos verá un parámetro llamado “nodeId”. El valor de este parámetro puede ser el UUID de un nodo válido (carpeta, documento, correo, registro) o la ruta del nodo.
Además, en todos los métodos verá un parámetro llamado “token”. Al acceder a la aplicación a través de SOAP, el proceso de inicio de sesión devuelve un token, que se utiliza para identificar al usuario en todos los métodos expuestos. Desde el contexto de ejecución por defecto de la aplicación debe utilizar el valor “null”, que indica a la aplicación que debe utilizar la “sesión del usuario”.
Métodos
Sección titulada «Métodos»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| login() | void | Simula el proceso de inicio de sesión del usuario en la interfaz. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().login(); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| login(String user, String pass) | void | Simula el proceso de inicio de sesión del usuario en la interfaz. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().login("userId","password"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| logout() | void | Cierra la sesión del usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().logout(); } catch (Exception e) { e.printStackTrace(); } }}grantUser
Sección titulada «grantUser»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| grantUser(String token, String nodeId, String user, int permissions, boolean recursive) | void | Añade un permiso de usuario sobre un nodo. |
- El parámetro recursive solo tiene sentido cuando nodeId es un nodo de tipo carpeta o registro.
- Cuando el parámetro recursive es true, el cambio se aplicará al nodo y a sus descendientes.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;import com.openkm.bean.Permission;
public class Test { public static void main(String[] args) { try { // Add john write grants at the node but not descendants OKMAuth.getInstance().grantUser(null, "/okm:root", "john", Permission.ALL_GRANTS, false);
// Add all okmAdmin grants at the node and descendants OKMAuth.getInstance().grantUser(null, "/okm:root", "okmAdmin", Permission.ALL_GRANTS, true); } catch (Exception e) { e.printStackTrace(); } }}revokeUser
Sección titulada «revokeUser»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| revokeUser(String token, String nodeId, String user, int permissions, boolean recursive) | void | Elimina un permiso de usuario sobre un nodo. |
- El parámetro recursive solo tiene sentido cuando nodeId es un nodo de tipo carpeta o registro.
- Cuando el parámetro recursive es true, el cambio se aplicará al nodo y a sus descendientes.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;import com.openkm.bean.Permission;
public class Test { public static void main(String[] args) { try { // Remove john write grants at the node but not descendants OKMAuth.getInstance().revokeUser(null, "/okm:root", "john", Permission.ALL_GRANTS, false);
// Remove all okmAdmin grants at the node and descendants OKMAuth.getInstance().revokeUser(null, "/okm:root", "okmAdmin", Permission.ALL_GRANTS, true); } catch (Exception e) { e.printStackTrace(); } }}getGrantedUsers
Sección titulada «getGrantedUsers»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getGrantedUsers(String token, String nodeId) | Map<String, Integer> | Devuelve los usuarios con permisos sobre un nodo. |
Ejemplo:
package com.openkm;
import java.util.Map;import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { Map<String, Integer> grants = OKMAuth.getInstance().getGrantedUsers(null, "/okm:root"); for (String role : grants.keySet()) { System.out.println(role + "->" + grants.get(role)); } } catch (Exception e) { e.printStackTrace(); } }}grantRole
Sección titulada «grantRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| grantRole(String token, String nodeId, String role, int permissions, boolean recursive) | void | Añade un permiso de rol sobre un nodo. |
- El parámetro recursive solo tiene sentido cuando nodeId es un nodo de tipo carpeta o registro.
- Cuando el parámetro recursive es true, el cambio se aplicará al nodo y a sus descendientes.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;import com.openkm.bean.Permission;
public class Test { public static void main(String[] args) { try { // Add ROLE_USER write grants at the node but not descendants OKMAuth.getInstance().grantRole(null, "/okm:root", "ROLE_USER", Permission.ALL_GRANTS, false);
// Add all ROLE_ADMIN grants to the node and descendants OKMAuth.getInstance().grantRole(null, "/okm:root", "ROLE_ADMIN", Permission.ALL_GRANTS, true); } catch (Exception e) { e.printStackTrace(); } }}revokeRole
Sección titulada «revokeRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| revokeRole(String token, String nodeId, String role, int permissions, boolean recursive) | void | Elimina un permiso de rol sobre un nodo. |
- El parámetro recursive solo tiene sentido cuando nodeId es un nodo de tipo carpeta o registro.
- Cuando el parámetro recursive es true, el cambio se aplicará al nodo y a sus descendientes.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;import com.openkm.bean.Permission;
public class Test { public static void main(String[] args) { try { // Remove ROLE_USER write grants at the node but not descendants OKMAuth.getInstance().revokeRole(null, "/okm:root", "ROLE_USER", Permission.ALL_GRANTS, false);
// Remove all ROLE_ADMIN grants to the node and descendants OKMAuth.getInstance().revokeRole(null, "/okm:root", "ROLE_ADMIN", Permission.ALL_GRANTS, true); } catch (Exception e) { e.printStackTrace(); } }}getGrantedRoles
Sección titulada «getGrantedRoles»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getGrantedRoles(String token, String nodeId) | Map<String, Integer> | Devuelve los roles con permisos sobre un nodo. |
Ejemplo:
package com.openkm;
import java.util.Map;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { Map<String, Integer> grants = OKMAuth.getInstance().getGrantedRoles(null,"/okm:root"); for (String role : grants.keySet()) { System.out.println(role + "->" + grants.get(role)); } } catch (Exception e) { e.printStackTrace(); } }}getUsers
Sección titulada «getUsers»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getUsers(String token) | List |
Devuelve la lista de todos los usuarios. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { for (String user : OKMAuth.getInstance().getUsers(null)) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } }}getRoles
Sección titulada «getRoles»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getRoles(String token) | List |
Devuelve la lista de todos los roles. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { for (String user : OKMAuth.getInstance().getRoles(null)) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } }}getUsersByRole
Sección titulada «getUsersByRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getUsersByRole(String token, String role) | List |
Devuelve la lista de todos los usuarios que tienen asignado un rol. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { for (String user : OKMAuth.getInstance().getUsersByRole(null, "ROLE_ADMIN")) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } }}getRolesByUser
Sección titulada «getRolesByUser»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getRolesByUser(String token, String user) | List |
Devuelve la lista de todos los roles asignados a un usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { for (String role : OKMAuth.getInstance().getRolesByUser(null, "okmAdmin")) { System.out.println(role); } } catch (Exception e) { e.printStackTrace(); } }}getMail
Sección titulada «getMail»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getMail(String token, String user) | String | Devuelve el correo de un usuario válido. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { System.out.println(OKMAuth.getInstance().getMail(null, "okmAdmin")); } catch (Exception e) { e.printStackTrace(); } }}getName
Sección titulada «getName»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getName(String token, String user) | String | Devuelve el nombre de un usuario válido. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { System.out.println(OKMAuth.getInstance().getName(null, "okmAdmin")); } catch (Exception e) { e.printStackTrace(); } }}changeSecurity
Sección titulada «changeSecurity»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| public void changeSecurity(String token, String nodeId, Map<String, Integer> grantUsers, Map<String, Integer> revokeUsers, Map<String, Integer> grantRoles, Map<String, Integer> revokeRoles, boolean recursive) |
void | Cambia la seguridad de un nodo. |
Ejemplo:
package com.openkm;
import java.util.*;import com.openkm.bean.Permission;import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { String nodeId = "b9736924-bb97-4e2c-8450-138c21e0c9d5"; Map<String, Integer> grantUsers = new HashMap<>(); Map<String, Integer> revokeUsers = new HashMap<>(); Map<String, Integer> grantRoles = new HashMap<>(); grantRoles.put("ROLE_TEST", Permission.READ | Permission.WRITE); Map<String, Integer> revokeRoles = new HashMap<>(); OKMAuth.getInstance().changeSecurity(null, nodeId, grantUsers, revokeUsers, grantRoles, revokeRoles, false); } catch (Exception e) { e.printStackTrace(); } }}createUser
Sección titulada «createUser»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createUser(String token, String user, String password, String email, String name, boolean active) | void | Crea un nuevo usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().createUser(null, "test", "password.2016", "some@mail.com", "User Name", true); } catch (Exception e) { e.printStackTrace(); } }}deleteUser
Sección titulada «deleteUser»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| deleteUser(String token, String user) | void | Elimina un usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().deleteUser(null, "test"); } catch (Exception e) { e.printStackTrace(); } }}updateUser
Sección titulada «updateUser»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| updateUser(String token, String user, String password, String email, String name, boolean active) | void | Actualiza un usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().updateUser(null, "test", "newpassword", "some@mail.com", "Test", false); } catch (Exception e) { e.printStackTrace(); } }}createRole
Sección titulada «createRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createRole(String token, String role, boolean active) | void | Crea un nuevo rol. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().createRole(null, "ROLE_TEST", true); } catch (Exception e) { e.printStackTrace(); } }}deleteRole
Sección titulada «deleteRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| deleteRole(String token, String role) | void | Elimina un rol. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().deleteRole(null, "ROLE_TEST"); } catch (Exception e) { e.printStackTrace(); } }}updateRole
Sección titulada «updateRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| updateRole(String token, String role, boolean active) | void | Actualiza un rol. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().updateRole(null, "ROLE_TEST",true); } catch (Exception e) { e.printStackTrace(); } }}assignRole
Sección titulada «assignRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| assignRole(String token, String user, String role) | void | Asigna un rol a un usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().assignRole(null, "test", "ROLE_USER"); } catch (Exception e) { e.printStackTrace(); } }}removeRole
Sección titulada «removeRole»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| removeRole(String token, String user, String role) | void | Quita un rol a un usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { OKMAuth.getInstance().removeRole(null, "test", "ROLE_USER"); } catch (Exception e) { e.printStackTrace(); } }}getProfiles
Sección titulada «getProfiles»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getProfiles(String token, boolean filterByActive) | List |
Devuelve la lista de todos los perfiles. |
- Cuando el parámetro filterByActive está habilitado, el método devolverá solo los perfiles activos; en caso contrario, devolverá todos los perfiles disponibles.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;import com.openkm.bean.Profile;
public class Test { public static void main(String[] args) { try { for (Profile profile : OKMAuth.getInstance().getProfiles(null, true)) { System.out.println(profile); } } catch (Exception e) { e.printStackTrace(); } }}getUserProfile
Sección titulada «getUserProfile»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getUserProfile(String token, String userId) | Profile | Devuelve el perfil asignado a un usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;
public class Test { public static void main(String[] args) { try { System.out.println(OKMAuth.getInstance().getUserProfile(null, "okmAdmin")); } catch (Exception e) { e.printStackTrace(); } }}setUserProfile
Sección titulada «setUserProfile»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| (String token, String userId, long profileId) | void | Cambia el perfil asignado a un usuario. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMAuth;import com.openkm.bean.Profile;
public class Test { public static void main(String[] args) { try { // Set the profile named "default" to the user for (Profile profile : OKMAuth.getInstance().getProfiles(null, true)) { if (profile.getName().equals("default")) { OKMAuth.getInstance().setUserProfile(null, "okmAdmin", profile.getId()); } } } catch (Exception e) { e.printStackTrace(); } }}