Ir al contenido

Crear su propio gestor de acceso de seguridad

OpenKM usa el gestor de acceso de seguridad para comprobar el nivel de acceso de seguridad de un usuario a los nodos.

Condiciones:

  • La nueva clase Principal Adapter debe implementar la interfaz “DbAccessManager”.
  • La nueva clase Principal Adapter debe declararse bajo el paquete “com.openkm.plugin.access”.
  • La nueva clase Principal Adapter debe estar anotada con “@PluginImplementation”.
  • La nueva clase Principal Adapter debe extender “BasePlugin”.

Interfaz del gestor de acceso de seguridad:

package com.openkm.plugin.access;
import com.openkm.core.AccessDeniedException;
import com.openkm.core.DatabaseException;
import com.openkm.core.PathNotFoundException;
import com.openkm.db.bean.NodeBase;
import com.openkm.principal.AuthException;
import net.xeoh.plugins.base.Plugin;
import java.util.Set;
/**
* Check user permissions on documents and folders.
*
* @author pavila
*/
public interface DbAccessManager extends Plugin {
void checkPermission(NodeBase node, int permissions) throws AccessDeniedException, PathNotFoundException, DatabaseException;
boolean isGranted(NodeBase node, int permissions) throws DatabaseException, PathNotFoundException;
boolean isGranted(NodeBase node, String user, int permissions) throws AuthException, DatabaseException, PathNotFoundException;
boolean isGranted(NodeBase node, String user, Set<String> roles, int permissions) throws AuthException, DatabaseException, PathNotFoundException;
boolean isGranted(NodeBase node, long nodeClass, int permissions) throws DatabaseException;
}

La nueva clase debe cargarse en el paquete com.openkm.plugin.access porque el sistema de plugins de la aplicación intentará cargarla desde ahí.