Tag Archives: AMP

Alfviral 1.3.1-beta

Este puente de 3 días de fiesta los he dedicado, entre otras cosas, a crear mis proyectos y pasarlos de Google Code (¡gracias Google!) a GitHub y a refactorizar el código del módulo para la detección de virus en Alfresco, aunque las versiones anteriores, hasta la 1.3.0-420 seguirán estando en Google Code incluido el código fuente.

Entre las cosas que quedaban pendientes me ha dado tiempo a incluir 3 características principales aunque mi “hoja de ruta” va cambiando conforme tengo tiempo disponible así como las funcionalidades que los propios usuarios me vais pidiendo.
Las características principales añadidas a esta versión son:

  1. Incorporación del protocolo ICAP
  2. Notificaciones de infecciones a usuario y administrador
  3. Refactorización del código y creación del servicio AntivirusService

1. Incorporación del protocolo ICAP

El protocolo ICAP (Internet Content Adaptation Protocol) es un protocolo abierto para la redirección de contenidos con fines de filtrado y conversión. Este es muy usado para reenviar tráfico hacia antivirus, traducción, etc. En este caso, evidentemente, se utiliza para el envío de documentos de Alfresco hacia un servidor ICAP que se conecte a un antivirus, si bien, en realidad también podría utilizarse para más cosas, entre ellas traducción del documento, compresión, transformación, etc.

Se encuentra estandarizado en la RFC 3507 y para obtener más información se puede ir aquí.

Ahora, en Alfviral se puede configurar este modo como ICAP y con 3 parámetros de configuración que serán el servidor, puerto y servicio al que se necesita conectar. P.e. si usamos el servicor c-icap y lo configuramos para que utilice ClamAV podemos configurar el fichero alfviral.properties como:
alfviral.mode=ICAP
alfviral.icap.host=192.168.56.101
alfviral.icap.port=1344
alfviral.icap.service=srv_clamav
Aunque este sistema creo que es el mejor para casi todos los casos de uso he dejado los métodos anteriores para que puedan seguir siendo utilizados.

2. Notificaciones de infecciones a usuario y administrador

Aunque se podía realizar vía reglas de contenido, por ejemplo si hacíamos que los documentos infectados se movieran a una carpeta de cuarentena o infectados y ahí creábamos una acción de envío de correo, ahora se puede automatizar de forma general en la configuración de Alfviral. Por ahora se envían notificaciones al usuario que ha subido el documento y/o al administrador (admin) en forma de texto plano (text/plain) pero estoy trabajando para poder asignarle una plantilla personalizada según el caso. 
Por ahora para configurarlo basta con indicar a quién queremos enviarle las notificaciones.
alfviral.notify.user=true
alfviral.notify.admin=true

3. Refactorización del código y creación del servicio AntivirusService

Esto era algo que quería hacer hace tiempo. Hasta ahora todo el peso lo llevaba la clase VirusScan que era una acción, ahora ha pasado a llamarse VirusScanAction y he pasado la mayor parte del código a una nueva clase llamada AntivirusService y que funciona como servicio público, de hecho también he creado AntivirusServiceDescriptorRegistry y AntivirusServiceRegistry.
Esto hará más sencilla la actualización y extensión del módulo y la posibilidad de añadirle más métodos al servicio.
El módulo para descargar está disponible en el siguiente enlace: https://github.com/fegorama/alfviral/releases/download/v1.3.1-beta/alfviral-1.3.1-beta.zip
El código fuente se puede descargar de: https://github.com/fegorama/alfviral/archive/v1.3.1-beta.zip
El repositorio está en: https://github.com/fegorama/alfviral

Alfviral 1.3.0.420 para Alfresco 4.2

He subido una nueva versión de Alfviral (Alfresco Virus Alert) adaptado para que funcione en la nueva versión 4.2 de Alfresco. Los cambios han sido en su mayoría sobre las acciones de usuario en Share.

Testeado en:
    Alfresco Community 4.2c
    Tomcat 7.0.47
    Java JDK/Jre 1.7.0_45

Se encuentra disponible para su descarga en: http://code.google.com/p/alfviral/downloads/detail?name=fegorsoft-alfviral-1.3.0.420.zip&can=2&q=#makechanges

Actualización de Alfviral 1.2.1

Debido a un “desliz” en mi código con la versión 1.2.0 se me olvidó declarar el servicio NodeService para usarlo en los modos COMMAND y INSTREAM por lo que he arreglado esto y algún que otro retoque más y he subido la versión 1.2.1 que os recomiendo que instaléis en lugar de la versión anterior.

Agradezco a Niccolò Pasquetto su aportación y aviso.

La nueva versión se puede descargar directamente desde:

https://alfviral.googlecode.com/files/fegorsoft-alfviral-1.2.1.zip

Crear módulos AMP para share (Alfresco)

Mi amigo Toni de la Fuente ha modificado un componente en WebScript (repository) para visualizar todas las consolas de que disponemos en la versión Enterprise de Alfresco: http://blyx.com/2011/03/07/anade-mas-utilidades-de-administracion-en-alfresco-share/ y ha creado un proyecto en google code a partir de este en: http://code.google.com/p/alfresco-useful-admin-links/

Para instalar este WebScript solo hay que copiarlo en la ruta indicada directamente (ver información en su proyecto) o bien, también se puede crear un módulo AMP para que pueda ser instalado dentro del fichero share.war

Bien, eso es lo que vamos a hacer, crearemos un fichero AMP con los ficheros de WebScript para que pueda dejarlo para descarga en su proyecto.

La creación de módulos para “share” de Alfresco es la misma que cuando se crean módulos para el “explorer”. Evidentemente cambian las localizaciones, dónde vamos a dejar los ficheros y que en este caso la mayoría de las veces serán archivos relacionados con WebScripts más que clases Java.

Si tenemos el SDK de Alfresco se puede realizar una copia de su “SDK Basic AMP” y a partir de ahí continuar, si no es así se puede crear un proyecto Java en Eclipse y dotarlo de la siguiente estructura:


En build/dist se creará el fichero de módulo, este se generará a partir de un fichero .jar generado, a su vez, a partir de lo que se tenga en el directorio source; así como también de los ficheros que hay en el directorio config.

Dentro del directorio config podemos crear la estructura misma que usa Alfresco (share) para almacenar los componentes y en concreto los de la consola para el administrador; y que está en alfresco/site-webscripts/org/alfresco/components/console

Lo más importante aquí es tener un buen fichero de ant para que pueda ser “compilado” todo correctamente.

Mi fichero ant para esto (build.xml) es el siguiente:

   
   
   

   
   
   
   

   
       
       
       
   

   
       
       
       
   

   
       
   

   
       
       
           
               
               
               
           
       
   

   
       
           
       
   

   
       
           
           
           
           
               
               
               
               
               
           
           
       
   

Una vez que todos los componentes están en su sitio solo hay que ejecutar el archivo build.xml (botón derecho encima del fichero build.xml en Eclipse y elegir “Run as…->Ant Build”) y comprobar el resultado.

 ¿Ventajas de tener un módulo?, creo que están claras, mejora la administración y mantenimiento del producto, mayor facilidad para instalación, etc. Por supuesto es lo aconsejado por Alfresco.

¿Desventajas?, pue sí, como con todo, también las hay, la más importante es que copiando los ficheros directamente en el despliegue de la aplicación solo hay que “refrescar” el “inventario” de WebScripts para tenerlos disponibles y en caliente, mientras que de la otra forma aunque no paremos el servidor o la aplicación share, al modificar el .war se autodesplegará produciendo al menos que tengámos que volver a autenticarnos, siempre y cuando no tengamos activado el Single Sign On (SSO)… 😉