Subido por Roberto Pino Escobar

Manual JBoss 6 4

Anuncio
1.- Instalar Jboss EAP 6.4
IMPORTANTE: cada ves que se modifique los archivos de
configuración del servidor es necesario reiniciar el server.
1.1.- Descargar Jboss
– Descargar el archivo jboss-eap-7.2.0.zip
1.2.- Instalar Jboss
– Descomprimir archivo jboss-eap-7.2.0.zip y dejarlo en la carpeta
linux: /opt/jboss-eap-6.4
windows: C:\opt\jboss-eap-7.2
Desde ahora esta es la carpeta ${JBOSS_HOME}
2.- Administración de Jboss
2.1.- Crear usuario de administración
– Ejecutar la shell de creación de usuarios:
En Linux: ${JBOSS_HOME}/bin/add-user.sh
En Windows: ${JBOSS_HOME}/bin/add-user.cmd
– Luego seguir las instrucciones, por ejemplo donde se crea el
usuario admin:
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): a
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property
files.
Username : admin
User 'admin' already exits, would you like to update the existing user
password and roles
Is this correct yes/no? yes
Password requirements are listed below. To modify these restrictions
edit the add-user.properties configuration file.
- The password must not be one of the following restricted values
{root, admin, administrator}
- The password must contain at least 8 characters, 1 alphabetic
character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
- The password must be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma
separated list, or leave blank for none)[ ]:
Updated user 'admin' to file
'${JBOSS_HOME}/standalone/configuration/mgmt-users.properties'
Updated user 'admin' to file '${JBOSS_HOME}/domain/configuration/mgmtusers.properties'
Updated user 'admin' with groups to file
'${JBOSS_HOME}/standalone/configuration/mgmt-groups.properties'
Updated user 'admin' with groups to file
'${JBOSS_HOME}/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to
another AS process?
e.g. for a slave host controller connecting to the master or for a
Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities
definition <secret value="YWRtaW4kMTIz" />
2.2.- Iniciar Server
– Para iniciar el server ejecutar:
En Windows
${JBOSS_HOME}/bin/standalone.cmd -c standalone-full.xml
En Linux
${JBOSS_HOME}/bin/standalone.sh -c standalone-full.xml
– Entrar a http://localhost:9990/console para validar el inicio, también
revisar el archivo de log:
${JBOSS_HOME}/standalone/log/server.log
IMPORTANTE: siempre usaremos el perfil(profile) full
2.3.- Detener Server
– Para detener el server se debe ejecutar:
En Windows
${JBOSS_HOME}/bin/jboss-cli.cmd --connect command=:shutdown
En Linux
${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown
2.4.- Crear DataSource
2.4.1.- Agregar driver al servidor
– Crear la carpeta
${JBOSS_HOME}/modules/com/oracle/weblogic/ojdbc7/main
– Descargar el archivo ojdbc7-12.1.3-0-0.jar y dejarlo en la carpeta
creada
– Crear el archivo module.xml en la carpeta creada:
<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1"
name="com.oracle.weblogic.ojdbc7">
<resources>
<resource-root path="ojdbc7-12.1.3-0-0.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
– Modificar el archivo
${JBOSS_HOME}/standalone/configuration/standalone-full.xml
y agregar el driver en la sección de drivers
<drivers>
......
<driver name="oracle" module="com.oracle.weblogic.ojdbc7">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<xa-datasourceclass>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
2.4.2.- Crear Datasource
– Iniciar el server y entrar a la pestaña Configuration y
seleccionar Connector -> Datasources y presionar el botón Add
– Ingresar el nombre y JNDI (ver tabla JNDI) pra el Datasource
– Seleccionar el driver “oracle”
– Ingresar los datos de conexión y luego presionar el botón Done:
Connection URL: jdbc:oracle:thin:@HOST:PUERTO:SERVICIO
Username: Usuario de base de datos
Password: Pasword del usuario
– Seleccionar el Nuevo Datasource y presionar el botón Enabled
2.5.- Manejo de Colas y Temas (Queue y
Topic)
2.5.1.- Crear Provider
– Modificar el archivo
${JBOSS_HOME}/standalone/configuration/standalone-full.xml
y agregar el hornetq-server en el subsystem de mensajería:
<subsystem xmlns="urn:jboss:domain:messaging:1.4">
......
<hornetq-server name="MiappProvider">
<backup>true</backup>
<allow-failback>true</allow-failback>
<shared-store>true</shared-store>
<journal-min-files>10</journal-min-files>
<connectors>
<connector name="netty-connector">
<factoryclass>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</fact
ory-class>
<param key="host"
value="${jboss.bind.address:localhost}"/>
<param key="port"
value="${hornetq.remoting.backup.netty.port:5446}"/>
</connector>
<connector name="in-vm">
<factoryclass>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factor
y-class>
<param key="server-id" value="${hornetq.serverid:0}"/>
</connector>
</connectors>
<acceptors>
<acceptor name="netty">
<factoryclass>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</facto
ry-class>
<param key="host"
value="${jboss.bind.address:localhost}"/>
<param key="port"
value="${hornetq.remoting.backup.netty.port:5446}"/>
</acceptor>
</acceptors>
<security-settings>
<security-setting match="#">
<permission type="send" roles="guest"/>
<permission type="consume" roles="guest"/>
<permission type="createNonDurableQueue"
roles="guest"/>
<permission type="deleteNonDurableQueue"
roles="guest"/>
</security-setting>
</security-settings>
<address-settings>
<address-setting match="#">
<dead-letter-address>jms.queue.DLQ</dead-letteraddress>
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
<redelivery-delay>0</redelivery-delay>
<max-size-bytes>10485760</max-size-bytes>
<page-size-bytes>2097152</page-size-bytes>
<address-full-policy>PAGE</address-full-policy>
<message-counter-history-day-limit>10</messagecounter-history-day-limit>
</address-setting>
</address-settings>
</hornetq-server>
</subsystem>
– Luego entrar a la consola de administración para validar la creación
2.5.2.- Crear cola (queue)
– Presionar View en nuestro Provider creado
– En la pestaña Queues/Topics presionar el botón Add
– Ingresar los siguientes valores:
Name: <Aplicación><Funcionalidad>Queue
JNDI: java:/jms/queue/<Aplicación><Funcionalidad>Queue (ver tabla
JNDI)
Luego presionar el botón Save
2.5.3.- Crear tema (topic)
– Presionar View en nuestro Provider creado
– En la pestaña Queues/Topics y luego a la seccion Topics y presionar
el botón Add
– Ingresar los siguientes valores:
Name: <Aplicación><Funcionalidad>Topic
JNDI: java:/jms/topic/<Aplicación><Funcionalidad>Topic (ver tabla
JNDI)
Luego presionar el botón Save
2.5.4.- Crear fabrica de conexiones (Connection
Factory)
– Presionar View en nuestro Provider creado
– En la pestaña Queues/Topics y luego a la sección Topics y presionar
el botón Add
– Ingresar los siguientes valores:
Name: <Aplicación>CF
JNDI: java:/jms/cf/<Aplicación>CF (ver tabla JNDI)
Luego presionar el botón Save
2.6.- Desplegar aplicación
– Entrar a Deployments y presionar el botón Add
– Presionar el botón Examinar y seleccionar el componente que se desea
desplegar
– Seleccionar la opción Enabled y presionar el botón Save
– Si el despliegue es correcto aparecerá en la lista
2.7.- Crear grupos y usuarios para las
aplicaciones
2.7.1.- Crear usuario y grupos en Jboss
– Ejecutar la shell de creación de usuarios:
En Linux: ${JBOSS_HOME}/bin/add-user.sh
En Windows: ${JBOSS_HOME}/bin/add-user.cmd
– Luego seguir las instrucciones, por ejemplo, donde se crea el
usuario movistaruser el cual pertenece a los
grupos grp_movistaruser,grupo2,grupo3:
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): b
Enter the details of the new user to add.
Using realm 'ApplicationRealm' as discovered from the existing
property files.
Username : movistaruser
Password requirements are listed below. To modify these restrictions
edit the add-user.properties configuration file.
- The password must not be one of the following restricted values
{root, admin, administrator}
- The password must contain at least 8 characters, 1 alphabetic
character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
- The password must be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma
separated list, or leave blank for none)[ ]:
grp_movistaruser,grupo2,grupo3
About to add user 'movistaruser' for realm 'ApplicationRealm'
Is this correct yes/no? yes
Added user 'movistaruser' to file
'${JBOSS_HOME}/standalone/configuration/application-users.properties'
Added user 'movistaruser' to file
'${JBOSS_HOME}/domain/configuration/application-users.properties'
Added user 'movistaruser' with groups grp_movistaruser,grupo2,grupo3
to file '${JBOSS_HOME}/standalone/configuration/applicationroles.properties'
Added user 'movistaruser' with groups grp_movistaruser,grupo2,grupo3
to file '${JBOSS_HOME}/domain/configuration/applicationroles.properties'
Is this new user going to be used for one AS process to connect to
another AS process?
e.g. for a slave host controller connecting to the master or for a
Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities
definition <secret value="bW92aXN0YXJ1c2VyMSQ=" />
– Los usuarios y password quedan en el archivo applicationusers.properties y las relaciones entre los usuarios y los grupos a los
que pertenece quedan en el archivo application-roles.properties
– Se modifica el archivo
${JBOSS_HOME}/standalone/configuration/standalone-full.xml
y se crea un nuevo dominio de seguridad que use los archivos para
hacer el login de los usuario:
<security-domains>
.......
<security-domain name="TchileDomain" cache-type="default">
<authentication>
<login-module code="RealmUsersRoles" flag="sufficient">
<module-option name="usersProperties"
value="file:///${jboss.server.config.dir}/applicationusers.properties"/>
<module-option name="rolesProperties"
value="file:///${jboss.server.config.dir}/applicationroles.properties"/>
<module-option name="defaultUsersProperties"
value="file:///${jboss.server.config.dir}/applicationusers.properties"/>
<module-option name="defaultRolesProperties"
value="file:///${jboss.server.config.dir}/applicationroles.properties"/>
<module-option name="realm" value="ApplicationRealm"/>
<module-option name="password-stacking"
value="useFirstPass"/>
</login-module>
</authentication>
</security-domain>
</security-domains>
Importante: el name se usará para hacer la relación con la aplicación
2.7.2.- Relación de los grupos en Jboss con la
aplicación
– Se crea el archivo jboss-web.xml y se deja en la aplicación
en src\main\webapp\WEB-INF
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>miapp</context-root>
<session-config>
<cookie-config>
<!-- Cookie propia del proyecto para almacenar la session->
<name>miapp-jsessionid</name>
<!-- La cookie queda asociada al dominio -->
<domain>tchile.local</domain>
<!-- La cookie queda en la raiz, asociada a todos los
recursos de la aplicacion -->
<path>/</path>
<!-- timeout de la session: 30 minutos = 1800 segundos -->
<max-age>1800</max-age>
</cookie-config>
<!-- Se habilita el uso de cookie para manejar la sesion -->
<tracking-mode>COOKIE</tracking-mode>
</session-config>
<!-- TchileDomain: nombre del dominio de seguridad configurado en
Jboss -->
<security-domain>java:/jaas/TchileDomain</security-domain>
<security-role>
<!-- Rol que usa la aplicacion -->
<role-name>ejecutivo</role-name>
<!-- Nombre usuario o nombre de grupo en Jboss o Ldap
configurado -->
<principal-name>grp_movistaruser</principal-name>
</security-role>
</jboss-web>
Importante:
Es necesario modificar el archivo hosts y agregar
127.0.0.1
miapp.tchile.local
Se usará para acceder a la aplicación:
http://miapp.tchile.local:8080/miapp
2.7.3.- Usar Ldap Tchile para el manejo de usuarios y
grupos
– Se modifica el archivo
${JBOSS_HOME}/standalone/configuration/standalone-full.xml
y se crea un nuevo dominio de seguridad que use los archivos para
hacer el login de los usuario:
<security-domains>
.......
<security-domain name="TchileDomain" cache-type="default">
<authentication>
<login-module code="LdapExtended" flag="sufficient">
<module-option name="java.naming.provider.url"
value="ldap://tchile.local:389"/>
<module-option name="java.naming.factory.initial"
value="com.sun.jndi.ldap.LdapCtxFactory"/>
<module-option
name="java.naming.security.authentication" value="simple"/>
<module-option name="bindDN" value="USUARIO_LDAP"/>
<module-option name="bindCredential"
value="PASSWORD_USUARIO_LDAP"/>
<module-option name="baseCtxDN"
value="OU=_Usuarios,DC=tchile,DC=local"/>
<module-option name="baseFilter"
value="(sAMAccountName={0})"/>
<module-option name="rolesCtxDN"
value="OU=_Grupos,DC=tchile,DC=local"/>
<module-option name="roleFilter"
value="(member={1})"/>
<module-option name="roleAttributeID"
value="sAMAccountName"/>
<module-option name="roleAttributeIsDN"
value="false"/>
<module-option name="searchScope"
value="SUBTREE_SCOPE"/>
<module-option name="allowEmptyPasswords"
value="false"/>
<module-option name="throwValidateError"
value="true"/>
</login-module>
</authentication>
</security-domain>
</security-domains>
Importante: el name se usará para hacer la relación con la aplicación
3.- JNDI: nombre de objetos
<Aplicación>: corresponde al nombre del componente desplegado (ear,
war, jar) en el Jboss
Elemento
Nombre
JNDI
Ejemplo JNDI
Data
Source
<Aplicación>DS
java:/jdbc/<Aplicación>DS
java:/jdbc/perDS
JMS
Conection
Factory
<Aplicación>CF
java:/jms/cf/<Aplicación>CF
java:/jms/cf/perCF
JMS
Queue
<Aplicación><Funcionalidad>QUE
java:/jms/queue/<Aplicación><Funcionalidad>QUE
java:/jms/queue/perCo
JMS
Topic
<Aplicación><Funcionalidad>TOP
java:/jms/topic/<Aplicación><Funcionalidad>TOP
java:/jms/topic/perCon
Work
Manager
<Aplicación><Funcionalidad>WM
java:/eis/<Aplicación><Funcionalidad>WM
java:/eis/WDQSendMa
Apoyo extra:
¿Qué deben hacer?
Instalar Jboss
- http://arquitecturati.tchile.local/arquitectura/jboss/#1
 Descargar
 Instalar
 Crear Usuario (add-user.cmd)
 Iniciar server: En la ruta de JBOSS_HOME/bin ejecutar por comando:
standalone.bat -c standalone-full.xml
 Crear DataSource
o Agregar el driver: crear el archivo module.xml
o Crear DataSource (Personalmente prefiero modificar el archivo
standalone-full.xml)
Descargar fuentes desde GIT
Cargarlas en Eclipse
Crear el EAR
Desplegar aplicación en Jboss
Properties:
Deben crear las siguientes carpetas:
EAP 7.7\modules\cl\tchile\properties\main
Pegar los archivos properties del aplicativo
Driver:
En base al punto 2.4.1 del manual Jboss 6.4, y la 'name ingresado'
Deben crear las siguientes carpetas:
EAP 7.2\modules\com\oracle\weblogic\ojdbc7\main
Alojar los archivos:
-module.xml
-ojdbc7-12.1.3.0-0.jar
De ser necesario algún archivo de este manual, me lo solicitan.
Descargar