Ir al contenido

Security Provider

Información para desarrolladores sobre la autenticación de OpenKM mediante un proveedor de autenticación personalizado (vía patch) y un adaptador Principal personalizado (vía plugin).

Para saber más sobre los proveedores de autenticación de OpenKM, visite Configuring openkm.xml.

Para saber más sobre los plugins de OpenKM, visite Register a new plugin.

Debe modificar su fichero openkm.properties dentro de la carpeta $CATALINA_HOME.

Estas propiedades deben añadirse/modificarse de esta manera:

Propiedad Valor
okm.authentication.database false
okm.authentication.supervisor false
okm.authentication.ldap false
okm.authentication.config file:/home/openkm/tomcat-8.5.69/openkm.xml
Esta es la ruta a su Tomcat.

Debe seguir los siguientes pasos para configurar este componente correctamente:

Descargue la aplicación desde el Download center de OpenKM.

Vaya a la configuración a través de la interfaz de administración de OpenKM y busque la propiedad principal.adapter, modificando su valor a com.openkm.plugin.principal.CustomPrincipalAdapter

Una vez compilado el proyecto Maven (security-provider), debe copiar security-provider-jar-with-dependencies.jar en la ruta: $CATALINA_HOME/plugins

Debe seguir los siguientes pasos para configurar este componente correctamente:

La aplicación es la misma que descargó desde el Download center de OpenKM.

Una vez compilado el proyecto Maven (security-provider), copie estas dos clases:

  • Debe copiar la clase com.openkm.security.provider.TestCustomAuthProvider.class desde security-provider.jar en la ruta: $CATALINA_HOME/webapps/openkm/WEB-INF/classes/com/openkm/security/provider
  • Copie com.openkm.security.utils.Users.class desde security-provider.jar en la ruta: $CATALINA_HOME/webapps/openkm/WEB-INF/classes/com/openkm/security/utils

Además, debe configurar un patch para preservar esas clases en futuras actualizaciones de OpenKM. Para ello, cree una carpeta llamada $TOMCAT_HOME/patch. Cree un script llamado prepare.sh con este contenido:

#!/bin/bash
if [ -f "openkm.war" ]; then
echo "Patching WAR..."
jar uf openkm.war WEB-INF/classes/com/openkm/security/provider/TestCustomAuthProvider.class
jar uf openkm.war WEB-INF/classes/com/openkm/security/utils/Users.class
echo "Done!"
else
echo "Not able to patch file"
fi

Necesita este contenido en su openkm.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<!-- Security delegated to classes -->
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="testAuthProvider" />
</security:authentication-manager>
<beans:bean id="testAuthProvider" class="com.openkm.security.provider.TestAuthProvider">
</beans:bean>
</beans:beans>