Instalación pasarela (para edit@)

La pasarela edit@ se denomina "crosswalk".

Se mantiene un paquete (RPM) para openSUSE 11.2

estas instrucciones presuponen que se está utilizando dicha versión de sistema operativo.

Respository Server -> downloads.opensuse.org

Directorio -> /repositories/home:/bgta:/proyectoedita/openSUSE_11.2/

Autenticación -> Anónimo

a) Con yast, instalar el paquete "glassfish-proyectoedita-crosswalk"

Nota: si se queja por dependencias, añadir con yast el repositorio 'packman'

b) Iniciar pasarela, los puertos que por defecto utiliza son:

4848 Admin

18080 http

8181 https

8686 JMX

3700 ?

3820 ?

3920 ?

8686 ?

c) Abrir puertos de entrada en firewall

Los components (MIT OKI OSID), por defecto se conectan por http al puerto 18080

Adicionalmente, para administrar el dominio, se puede abrir el puerto 4848

d.1) Test de la instalación

http://localhost:4848/ (administración del dominio 'crosswalk')

http://localhost:18080/ (pasarela edit@)

Nota: Por defecto, el login y el password son respectivamente admin:admin

d.2) Usuarios de Alfresco para probar la instalación

Si el content model no está customizado (metadatos SCORM) entonces seguir instrucciones en subpágina:

'Customización del content model de Alfresco para los metadatos SCORM'

La documentación de Edita utiliza los siguientes usuarios y passwords de Alfresco para probar la instalación (asegurarse que existen en el Alfresco que se esté utilizando):

Edita_rol    Alfresco_username    Alfresco_password
---------------------------------------------------
ADMIN        editaadmintest       editaadmintest
WRITER       editawritertest      editawritertest
READER       editareadertest      editareadertest

e) Configuración de los "Resources -> JNDI -> Custom Resources" del dominio de pasarela (crosswalk) de GlassFish:

cfg/Crosswalk

/opt/glassfish/bin/asadmin create-custom-resource --restype java.util.Properties --factoryclass org.proyectoedita.shared.resources.PropertiesFactory --interactive=false --user admin --passwordfile /usr/share/doc/packages/glassfish-proyectoedita-crosswalk/crosswalk-passwd --property DICTIONARY_PATH=/opt/glassfish/domains/crosswalk/data/crosswalk/dictionary:LOGGING_PATH=/opt/glassfish/domains/crosswalk/data/crosswalk/logging:AUTHENTICATION_MODULE=Alfresco cfg/Crosswalk

jcr/Alfresco

Se utiliza para atacar a Alfresco mediante "jcr-rmi"

JNDI Name:jcr/Alfresco

Resource Type:javax.jcr.Repository

Factory Class:org.apache.jackrabbit.rmi.client.ClientRepositoryFactory

Description:Repositorio remoto de Alfresco

Status: Enabled

Properties:

url=rmi://localhost:1099/javaContentRepository //Alfresco se registra en RMI con el nombre 'javaContentRepository'

jms/TransportQueueConnectionFactory

[TODO] Falta documentar detalle

jms/TransportTopicConnectionFactory

[TODO] Falta documentar detalle

jms/TransportOutputQueue

[TODO] Falta documentar detalle

jms/TransportInputQueue

[TODO] Falta documentar detalle

f) Verificar la configuración JASS de GlassFish, ésta permite utilizar la autenticación de Alfresco:

En el dominio 'crosswalk' de GlassFish, en el fichero login.conf tiene que estar añadido:

Alfresco {

org.proyectoedita.security.authentication.LoginModuleAlfresco required URL_BASE="http://localhost:8080";

};

Nota: En este caso, Alfresco es accesible a través de http://localhost:8080/alfresco (desde la misma máquina)

g) Instalar nuestra implementación de JAAS.

Si se usa Hudson, ésto lo hace automáticamente el pom.xml del proyecto 'security' con el profile id="Hudson".

En caso contrario, éstos son los pasos a seguir:

-Copiar "org-proyectoedita-security-x.x.x.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

-Copiar "/net/sf/json-lib/json-lib/2.3/json-lib-2.3-jdk15.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

-Copiar "/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

-Copiar "/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

-Copiar "/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

-Copiar "/log4j/log4j/1.2.14/log4j-1.2.14.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

-Copiar "/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

-Copiar "/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar" a /opt/glassfish/domains/crosswalk/lib/ext/

Reiniciar pasarela edit@ para que cargue los cambios:

sudo /etc/init.d/crosswalk restart

h) Creación y configuración de la base de datos relacional para pasarela edit@

>mysql -u root

mysql>CREATE DATABASE IF NOT EXISTS edita CHARACTER SET=utf8 COLLATE=utf8_general_ci;

mysql>create user 'edita'@'localhost' identified by 'edita';

mysql>grant all on *.* to 'edita'@'localhost';

Verificar que se ha creado la base de datos y el usuario:

mysql>show databases;

mysql>select user from mysql.user;

j) La configuración de persistencia de pasarela se encuentra en el proyecto 'crosswalkServer-ejb', en

Other Sources\persistence.xml

Si es necesario, aquí se puede configurar username/password y conexión a la DB.

La primera vez interesa que cree las tablas, por lo que tendremos sólo en dicha ocasión:

<property name="eclipselink.ddl-generation" value="create-tables"/>

Nota: Las tablas deberían crearse la primera vez que se utiliza el servicio "Authorization", por ejemplo con el test JUnit del component

k) Popular inicialmente las tablas de la DB 'edita' (una vez creadas dichas tablas)

INSERT INTO edita.auth_bd_type
(authority, description, keyword, domain)
VALUES ('authorityTest', 'descriptionTest', 'keywordTest', 'domainTest');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'ADD');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'CREATE');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'EDIT');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'VIEW');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'GET');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'REMOVE');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'OTHER');
 
INSERT INTO edita.auth_bd_type
(authority, domain, keyword)
VALUES ('org.proyectoedita', 'authorization', 'DEFAULT');
 
INSERT INTO edita.auth_bd_qualifier_hierarchy
(id) VALUES ('QualifierHierarchyTest');

SOLUCIÓN DE ERRORES

a) org.alfresco.error.AlfrescoRuntimeException: Error during command servlet processing: Unable to resolve item Path: /Company Home/Data Dictionary/Web Scripts/isAdmin.js

Este error significa que no se han instalado los WebScripts en Alfresco.

Los scripts utilizados por edit@ (anexos a este documento) son:

buscagrupo.js

editaUserPreferencesJSON.js

getGroupMembers.js
getGroupMembersJSON.js
getGroups.js
getGroupsJSON.js
isAdmin.js
prueba.js
pruebaArray.js

Estos WebScripts se suben a Alfresco desde Web con "Add Content", en la ubicación:

Company Home > Data Dictionary > Web Scripts

b) org.alfresco.error.AlfrescoRuntimeException: Error during command servlet processing: Failed to execute script 'workspace://SpacesStore/f6a06be8-9f70-4af9-bb18-59a01cac77d9': Access Denied. You do not have the appropriate permissions to perform this operation.

caused by:

org.alfresco.scripts.ScriptException: Failed to execute script 'workspace://SpacesStore/f6a06be8-9f70-4af9-bb18-59a01cac77d9': Access Denied. You do not have the appropriate permissions to perform this operation.

caused by:

org.alfresco.repo.security.permissions.AccessDeniedException: Access Denied. You do not have the appropriate permissions to perform this operation.

caused by:

net.sf.acegisecurity.AccessDeniedException: Access is denied.

Este error significa que los permisos de usuario en los espacios no son correctos.

Id como 'admin' a "Company Home", More actions, Manage Space Users y añadir permisos para los usuarios, por ejemplo:

Assigned Permission To Authority Access

All editareadertest ALLOWED