Extension de clases base

PAUT-0026 (Pauta)

Para cambiar una funcionalidad implementada en el núcleo(core) de Alfresco la recomendación es nunca sobrescribir la clase que la implementa sino crear una nueva que herede de ésta y sobrecargar los métodos que sean necesarios. Despues a traves de la configuración de Spring haremos que se use nuestra clase a la hora de ejecutar la funcionalidad que hemos sobreescrito.

Como ejemplo vamos a ver como cambiar la autenticación de Alfresco para que ésta se haga de forma automatica en vez de contra la base de datos de Alfresco. Para ello vamos a crear una nueva clase AutenticationAutomaticCustom que extenderá la clase de Alfresco AbstractAuthenticationComponent y sobrecargaremos el método que nos interesa en este caso authenticateImpl().

El código será algo parecido a:

public class AutenticacionAutomoticCustom extends AbstractAuthenticationComponent
{
private static final Log logger = LogFactory.getLog(AutenticacionAutomoticCustom.class);

/**
* Implementación de un método de autenticación personalizado y automático
*/
protected void authenticateImpl(String userName, char[] password) throws AuthenticationException
{
try
{
logger.debug(" ------> Begin authentication process <------");
/*Implementación del metodo de Autenticación Automático */
.
.
.
}
catch (NamingException e)
{
logger.error("Usuario no valido");
throw new AuthenticationException("Usuario no válido ");
}
finally
{
.
.
.
logger.debug(" ------> Fin proceso de autenticación ------");
}
}
@Override
protected boolean implementationAllowsGuestLogin()
{
Return true
}
}