sábado, 7 de junio de 2014

Tutorial de SLF4j desde cero

Para los amantes del desarrollo en java, aquí les dejo un vídeo tutorial que encontré en youtube.

Espero les sea de utilidad y no olviden dejar sus comentarios.






jueves, 27 de marzo de 2014

Obtener Usuario Autenticado por medio de JAAS en un WebService EJB 3.0

Introducción:

 

Cuando se consume un cliente de un WebService, lo primero que se debe hacer de parte del cliente es pasar por una etapa de autenticación y autorización; el usuario ingresado es verificado según las políticas de seguridad establecidas por medio de JAAS (Java Authentication and Authorization Service), las cuales en el caso de utilizar un servidor Jboss se encuentran definidas en el archivo JBOSS_HOME\server\default\conf\login-config.xml. 

A continuación podemos ver un ejemplo de la definición de una  política de seguridad declarada en dicho archivo:

<application-policy name="ExamplePolicy">
   <authentication>
     <login-module code="org.jboss.security.ClientLoginModule" flag="required">
     </login-module>
     <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
       <module-option name="dsJndiName">java:/exampleDS</module-option>
       <module-option name="principalsQuery">
           SELECT contrasena
           FROM usuario
           WHERE usuario = ?
       </module-option>
       <module-option name="rolesQuery">
           SELECT usuario, 'Roles'
           FROM usuario
           WHERE usuario = ?
       </module-option>
       <module-option name="hashAlgorithm">MD5</module-option>
       <module-option name="hashEncoding">hex</module-option>
       <module-option name="hashCharset">UTF-8</module-option>
     </login-module>
   </authentication>
 </application-policy>

jueves, 20 de marzo de 2014

Creación de Documentos desde DOTCMIS

Para crear un documento a Alfresco, utilizando la librería DOTCMIS; es bastante sencillo, tan solo basta con implementar el siguiente método:

public void PutFile(string folderId, Stream stream)
{
    /*seteo las propiedades*/
    IObjectId cmisObjectFolder = (IObjectId)session.GetObject(folderId);

    IDictionary<string, object> properties = new Dictionary<string, object>();
    properties[PropertyIds.Name] = "Documento de Prueba";
    properties[PropertyIds.ObjectTypeId] = "cm:document";
    properties[PropertyIds.CreationDate] = DateTime.Now;
    properties[PropertyIds.LastModificationDate] = DateTime.Now;

    /*seteo el contentstream*/
    ContentStream contentStream = new ContentStream();
    contentStream.FileName = "Documento de Prueba";;
    contentStream.MimeType = ".doc";
    contentStream.Length = stream.Length;
    contentStream.Stream = stream;

    /*mando a crear el documento*/
    IObjectId objectId = session.CreateDocument(properties, cmisObjectFolder, contentStream, DotCMIS.Enums.VersioningState.None);
}

Para utilizar este método es necesario crear antes una sesión en Alfresco.

jueves, 13 de marzo de 2014

Conexión con Alfresco usando DOTCMIS

Objetivo

Desarrollar en C# método que nos permita realizar una conexión con Alfresco usando la librería DOTCMIS.

Paso 1:

Descargar la librería DOTCMIS.

Paso 2:

Agregar la librería DOTCMIS en nuestro proyecto.

Creando Tipos de Documentos en Alfresco

La creación de tipos de documentos y aspectos en Alfresco; resulta en la creación y modificación de una serie de archivos en su mayoria xml.

Dichos archivos se guardan en:
  • Extension
    /opt/bitnami/apache-tomcat/shared/classes/extension
  • Web-Extension
    /opt/bitnami/apache-tomcat/shared/classes/web-extension
  • Messages
    /opt/bitnami/apache-tomcat/shared/classes/messages
El servidor que he usado es una maquina virtual, obtenida desde bitnami. Así, pues la ruta de uds. podría ser otra. Para dejar un estandar debería ser: ruta_de_instalación_alfresco/...

Paso 1

miércoles, 12 de marzo de 2014

Búsqueda y Lectura de Documentos desde DOTCMIS

Búsqueda


Para realizar una búsqueda de archivos en Alfresco, debemos hacer uso de CMIS Query Language; lo que nos permitirá realizar consultas, como si de una base de datos se tratase.

Por ejemplo:
SELECT
d.cmis:name, d.cmis:objectId, d.cmis:baseTypeId, d.cmis:objectTypeId, d.cmis:createdBy,
d.cmis:lastModifiedBy, d.cmis:lastModificationDate, d.cmis:contentStreamMimeType,
d.cmis:contentStreamFileName,d.cmis:contentStreamId,d.cmis:contentStreamLength,
FROM cmis:document as d
El código quedaría de este modo:
string query = @"
SELECT
d.cmis:name, d.cmis:objectId, d.cmis:baseTypeId, d.cmis:objectTypeId, d.cmis:createdBy,
d.cmis:lastModifiedBy, d.cmis:lastModificationDate, d.cmis:contentStreamMimeType,
d.cmis:contentStreamFileName,d.cmis:contentStreamId,d.cmis:contentStreamLength,
FROM cmis:document as d ";

IItemEnumerable<IQueryResult> result = session.Query(query, false);
Pueden probar las consultas utilizando la herramienta CMIS Workbench y para mayor información pueden revisar esta información.

martes, 11 de marzo de 2014

Configurar SSL en Alfresco Community 4.2

Es muy importante tener en cuenta que vamos a utilizar un certificado auto autentificado,
esto me dio muchos problemas cuando quisé por ejemplo:
  • Utilizar la herramienta CMIS-Workbench
  • Exportar documentos desde Ephesoft hacía Alfresco
  • Conectar una aplicación propia con Alfresco; mediante la librería DOTCMIS.
Es por esto que recomiendo en un ambiente de producción, no colocar un certificado auto autentificado.

Paso 1

Nos vamos a la carpeta java (Tomen en cuenta que en mi caso uso una distribución Ubuntu Linux)
cd /opt/bitnami/java/bin/