Home > Apache Geronimo v1.0 > Documentación > Apache Geronimo v1.0 - GuÃa de Usuario > Tareas Administrativas |
Este artÃculo es un intento de cubrir tantas tareas administrativas que sean posibles, comunes como no tan comunes. El artÃculo se agrupa en cuatro secciones principales, teniendo un flujo similar a lo que encontrarÃas ante el uso de la Consola de Administración Geronimo, facilitándote la familiarización tanto en tareas como consola.
Este artÃculo esta organizado con la secciones siguientes:
Referencia adicional:
En esta sección se cubren las tareas administrativas más comunes, diarias, y relacionadas con el servidor, con las cuales te podrÃas topar. Secciones subsecuentes se enfocarán en la configuración de servicios, administración de aplicaciones y configuración de seguridad.
Cuando descargas y construyes Apache Geronimo a partir del código fuente (proporcionado por svn), obtendrÃas una estructura de directorios similar a la siguiente:
Si navegas dentro del directorio assemblies encontrarás los siguientes subdirectorios:
Nos enfocaremos en los dos últimos directorios que, como seguramente esperas, contienen imágenes independientes de Apache Geronimo, configuradas para usar alguno de los dos contenedores Web.
Dependiendo de que desees usar Jetty ó Tomcat, ingresarás al directorio respectivo (j2ee-jetty-server ó j2ee-tomcat-server), y la estructura interna de subdirectorios será la misma. Una vez que te encuentres dentro del directorio especÃfico del contenedor Web, ingresa al directorio target/geronimo-1.0. Este directorio es tu servidor Apache Geronimo, independiente y totalmente completo. PodrÃas copiar este directorio a una ubicación distinta. A lo largo de estas series de artÃculos, las referencias a este directorio serán hechas con <geronimo_home>
Entonces, eligiendo al contenedor Web ya no consiste en cambiar archivos de configuración, más bien ahota es la elección de una estructura de directorio para assemblies diferentes. Dentro de esta estructura encontraras al directorio /bin; la siguiente sección explica los comandos almacenados en dicho directorio y el cómo iniciar y detener al servidor.
Regresar a la sección superior
Existen dos formas, mediante la lÃnea de comandos, para iniciar al servidor. Desde una ventana de la lÃnea de comandos ó una terminal, ingresa al directorio <geronimo_home>/bin. Desde ahà puedes teclear:
java -jar server.jar
ó simplemente
startup
Consulta las secciones Startup y Geronimo para obtener todas las opciones del comando en cuestión.
Para detener al servidor tendrás que abrir una nueva ventana de la lÃnea de comandos ó una terminal, ingresar al directorio <geronimo_home>/bin y ejecutar al comando shutdown. Se te solicitará usuario (username) y contraseña (password). Consulta las secciones Shutdown y Geronimo para obtener las opciones disponibles del comando en cuestión.
Si el servidor ya se encuentra en ejecución, tienes la opción de emplear la Consola de Administración Geronimo para detenerlo (shutdown) de forma remota. Con el servidor arriba y en ejecución, abre un explorador Web e ingresa a la siguiente URL para tener acceso a la consola:
Ingresa a la Consola de Administración Geronimo y haz clic en Shutdown, ubicado en el menú de Navegación de la Consola (Console Navigation), en la sección izquierda.
Al hacer clic en el botón Shutdown en el fragmento del Administrador del Servidor (Server Manager portlet), se te solicitará una o más veces la confirmación de la petición de detener al servidor. Haz clic en el botón Shutdown para confirmar y detener al servidor. No es necesario mencionar que, como consecuencia, se perderá la conexión con la Consola de Administración y necesitarás reiniciar al servidor desde una terminal ó desde una ventana de lÃnea de comandos para retomar la conexión.
Regresar a la sección superior
Como se explicó en la sección Consola de Administración Geronimo, la Consola de Administración proporciona cuatro fragmentos (portlets) para la configuración e inspección de las bitácoras del servidor; dichos fragmentos son Log Manager, Server Log Viewer, Derby Log Viewer y Web Access Log Viewer.
Regresar a la sección superior
Las opciones del fragmento Log Manager (Administrador de Bitácora) son ilustradas en la siguiente figura. Desde este fragmento puedes especificar la ubicación del archivo de configuración de bitácora. Por defecto, dicho valor se establece con var/log/server-log4j.properties.
Otro valor que puedes modificar en este fragmento es Refresh Period _(Periodo de actualización)_. Este valor le dice a Geronimo con que frecuencia (en segundos) deberÃa buscar cualquier cambio en el archivo de configuración. Por defecto, dicho valor se establece con 60 segundos.
Desde este fragmento también puedes cambiar el Log Level (Nivel de Bitácora). Por defecto su valor es INFO, y los valores posibles a elegir son All, DEBUG, INFO, WARN, ERROR, FATAL, TRACE and OFF.
Regresar a la sección superior
Las opciones del portlet Server Log Viewer (Visor de la Bitácora del Servidor) se ilustran en la siguiente figura. Desde este portlet puedes ver las bitácoras del servidor Geronimo asà como establecer filtros para redefinir al despliegue de resultados.
La liga Refresh (Refrescar) en la esquina superior izquierda, limpiará a todo criterio de filtrado que podrÃas haber especificado en los valores predefinidos de la Consola de Administración Geronimo, y desplegará las últimas 10 lÃneas (si existen) de la bitácora actual del servidor Geronimo.
El área Filter Results: (Resultados del Filtro) te permitirá especificar un criterio distinto de filtrado, para mayor particularidad en tu búsqueda. El menú de opciones File (Archivo) te permite elegir qué archivo de bitácora observar. Las bitácoras enlistadas en dicho menú se rigen por el Config File _(Archivo de Configuración)_ (server-log4j.properties por defecto) especificado en el portlet Log Manager. El número de archivos de bitácora a elegir en el menà File dependerá del número de archivos de bitácora definidos en el archivo de configuración server-log4j.properties.
Lines.. to.. _(LÃneas.. a..)_ te permite especificar el rango de lÃneas de bitácora a analizar. Max Results (Máximos Resultados) limita la cantidad de lÃneas a ser desplegadas. Level (Nivel) sólo despliega los errores ocurridos para dicho Nivel de Bitácora. Containing text (Conteniendo texto) te permite especificar una cadena a buscar a lo largo de la bitácora del servidor. Al habilitar al checkbox With Exceptions (Con Excepciones) te desplegará tanto al error como su excepción, tomando en cuenta que el despliegue del stack trace será limitado a la cantidad de lÃneas establecidas en el valor Max Results.
Regresar a la sección superior
Las opciones del portlet Derby Log Viewer (Visor de Bitácora Derby) se ilustran en la siguiente figura. Desde este portlet puedes observar las bitácoras del servidor Derby, asà como establecer los filtros para refinar los resultados desplegados.
La liga Refresh (Refrescar) en la esquina superior izquierda, limpiará a todo criterio de filtrado que podrÃas haber especificado en los valores predefinidos de la Consola de Administración Geronimo, y desplegará las últimas 10 lÃneas (si existen) de la bitácora actual de servidor Derby.
Similar al portlet Server Log Viewer, el área Filter Results: (Resultados del Filtro) te permitirá especificar un criterio distinto de filtrado para mayor particularidad en tu búsqueda. Lines.. to.. _(LÃneas.. a..)_ te permite especificar el rango de lÃneas de bitácora a analizar. Max Results (Máximos Resultados) limita la cantidad de lÃneas a ser desplegadas y Containing text (Conteniendo texto) te permite especificar una cadena a buscar a lo largo de la bitácora del servidor.
Regresar a la sección superior
Las opciones del portlet Web Access Log Viewer (Visor de Bitácora de Acceso Web) se ilustran en la siguiente figura. Desde este portlet puedes observar las bitácoras del servidor Web, asà como establecer los filtros para refinar los resultados desplegados.
La liga Refresh (Refrescar) en la esquina superior izquierda, limpiará a todo criterio de filtrado que podrÃas haber especificado en los valores predefinidos de la Consola de Administración Geronimo. A diferencia del resto de portlets, Web Access Log Viewer te desplegará todas las lÃneas en la bitácora, sólo será limitado por las capacidades de despliegue de tu navegador web.
El área Filter Results: (Resultados del Filtro) te permitirá especificar un criterio distinto de filtrado para mayor particularidad en tu búsqueda. Para Web Access Log Viewer, esta área esta dividida en tres grupos principales: Date (Fecha), Identity (Identidad) y Requests (Peticiones).
Regresar a la sección superior
Para monitorear el rendimiento del servidor Web, el portlet Web Server Manager (Administrador del Servidor Web) esta disponible al elegir Web Server (Servidor Web) del menú Console Navigation _(Navegación de Consola)_ ubicado en la sección izquierda. Por defecto, este portlet no esta habilitado; da clic al botón enable (habilitar) para iniciar la captura de estadÃsticas.
Al habilitarle, iniciarás la captura de información en la cantidad de peticiones, conexiones concurrentes, duración de peticiones, etc. La siguiente figura ilustra todos los valores que son recolectados.
Las tres ligas en la sección inferior te permiten refresh (actualizar) las estadÃsticas, disable (deshabilitar) al portlet y detener la captura de nuevos datos y reset (limpiar) los datos recolectados.
Nota que toda petición tuya, hecha desde la Consola de Administración Geronimo (por ejemplo, actualizar las estadÃsticas), también será reflejada en esta recolección de datos. |
Regresar a la sección superior
Para la configuración de nuevos oyentes (HTTP, HTTPS y AJP) en el contenedor Web en uso (ya sea Jetty ó Tomcat), el portlet Network Listener (Oyente de Red) esta disponible al elegir Web Server (Servidor Web) en el menú de Console Navigation _(Navegación de Consola)_ situada a mano izquierda. Desde este portlet puedes agregar nuevos oyentes, asà como cambiar el estado (stop, start, delete) (detener, iniciar, eliminar) de oyentes existentes.
Los procesos descritos a continuación son idénticos en ambos contenedores Web, tanto para Jetty como para Tomcat.
Para agregar un nuevo oyente HTTP, haz clic en la liga respectiva. La siguiente figura ilustra los distintos parámetros necesarios para la creación de un nuevo oyente HTTP. Este proceso es muy simple y los parámetros se explican por sà mismos; llena los valores y haz clic en Save (Guardar).
Regresar a la sección superior
Para agregar un nuevo oyente HTTPS, haz clic en la liga respectiva. La siguiente figura ilustra los distintos parámetros necesarios para la creación de un nuevo oyente HTTPS. Este proceso es muy simple y los parámetros se explican por sà mismos; llena los valores y haz clic en Save (Guardar).
Regresar a la sección superior
Para agregar un nuevo oyente AJP, haz clic en la liga respectiva. La siguiente figura ilustra los distintos parámetros necesarios para la creación de un nuevo oyente AJP. Este proceso es muy simple y los parámetros se explican por sà mismos; llena los valores y haz clic en Save (Guardar).
Regresar a la sección superior
Para la configuración del servidor JMS, el portlet de JMS Network Listeners (Oyentes de Red JMS) está disponible mediante la selección de JMS Server (Servidor JMS) en el menú de la Console Navigation _(Navegación de Consola)_ situada a mano izquierda. Al hacer clic en JSM Server también obtendrás al portlet JMS Server Manager (Administrador del Servidor JMS), el cual despliega los agentes (brokers) disponibles en el servidor, asà como su estado. Las siguientes figuras ilustran ambos portlets y sus opciones.
Desde el portlet JMS Network Listeners puedes agregar nuevos oyentes, asà como cambiar el estado (stop, start, delete) (detener, iniciar, eliminar) de los existentes. Las opciones disponibles para agregar conectores a ActiveMQ ya se han mostrado en la figura.
Para agregar un nuevo conector a ActiveMQ has clic en la liga apropiada. La siguiente figura ilustra a los distintos parámetros necesarios para la creación de estos conectores. Este proceso es muy simple y los parámetros se explican por sà mismos; llena los valores y haz clic en Save (Guardar).
Nota que las mismas opciones te serán presentadas, independientemente de cual oyente desees agregar.
Detalles en como configurar fábricas de conexiones, colas, tópicos y destinos son cubiertos en la siguiente sección Configurando JMS.
Regresar a la sección superior
Existen tres tareas mayores a ser cubiertas en esta sección, las cuales son:
Para agregar artefactos al repositorio, el portlet Repository Viewer (Visor de Repositorio) esta disponible al elegir Common Libraries _(LibrerÃas en Común)_ en el menú de Console Navigation _(Navegación de Consola)_ ubicado a mano izquierda. El portlet Repository Viewer que se ilustra en la figura siguiente, despliega los artefactos instalados en el repositorio del servidor. La presentación del repositorio es la misma que se usa en Apache Maven, lo cual facilita el copiado de archivos.
Para usar un artefacto en una aplicación, agrega un elemento de dependencia en su plan de activación (deployment plan). Por ejemplo, para usar Castor XML, agrega el siguiente código XML al plan:
<dependency> <uri>castor/jars/castor-0.9.5.3.jar</uri> </dependency>
Regresar a la sección superior
Para configurar pools de bases de datos, el portlet Database Pools (Pools de Bases de Datos) esta disponible al elegir Database Pools en el menú de la Console Navigation _(Navegación de Consola)_ ubicado a mano izquierda. El portlet Database Pools ilustrado en la figura siguiente, muestra todo pool de base de datos disponible y proporciona ayudantes para importar ó crear nuevos pools.
Puedes crear nuevos pools mediante clic en la liga Using the Geronimo database pool wizard (Usando al ayudante Geronimo de pool de base de datos) dentro del portlet Database Pools. Este ayudante te guiará a durante el procedimiento de 4 pasos sencillos.
Consulta Configurando al Datasource DB2 para un ejemplo funcional adicional en datasources con archivos jar (controlador+licencia) múltiples. |
Primero necesitas especificar el nombre del pool de base de datos, asà como su tipo de base de datos.
Posteriormente seleccionas los controladores JDBC, los cuales por defecto son pre-llenados, basándose en el tipo de base de datos que seleccionaste en el paso previo. También debes seleccionar al JAR del controlador desde el menú de selección y después especificar el nombre de la base de datos. Para este ejemplo, una base de datos test (prueba) fue creada previamente; se trata del proceso de creación con un solo paso, el cual es explicado en Crear una base de datos.
El siguiente paso te permite configurar algunos parámetros de conexión, como el tamaño del pool (mÃnimo y máximo) y tolerancias de tiempo. Al estar satisfecho con los parámetros, haz clic en Test Connection _(Probar Conexión)_.
Al haber probado satisfactoriamente la conexión, haz clic en Deploy Tool _(Herramienta de Activación)_. Como alternativa, puedes hacer clic en Show Deployment Plan _(Muestra Plan de Activación)_ para este pool de base de datos y también te permite editarle. Instrucciones adicionales en el como activar manualmente un plan de BD, puede encontrarse en la sección Configurando al Datasource DB2.
Al haber sido activado, Derby_Test (Prueba_Derby) deberÃa ser listado junto con el resto de pools de bases de datos.
Regresar a la sección superior
Este ayudante te asistirá en la importación de pools de bases de datos JBoss 4 existentes. Para este ejemplo particular, usaremos al hsqldb-ds.xml proporcionado por el servidor JBoss default, esto es <jboss_home>\server*default*\deploy\hsqldb-ds.xml junto con la base de datos Hypersonic.
Antes de continuar, deberás proporcionar a Geronimo al jar controlador para Hypersonic HSQL. Para hacerlo, deberás seguir pasos similares a los descritos en Configurando al Datasource DB2. A continuación se presenta un resumen de pasos para la declaración del jar controlador HSQL en Geronimo.
Regresa a la Consola de Administración Geronimo y haz clic en la liga Database Pools (Pools de Bases de Datos). Desde el portlet Database Pools haz clic en Import from JBoss 4 (Importar de JBoss 4). En el Step 1 (Paso 1) de Import Database Pools (Importar Pools de Bases de Datos) especifica la ubicación del archivo -ds.xml y haz clic en Next (Siguiente).
Al finalizar la carga del datasource JBoss, Setp 2 (Paso 2) lista los pools de bases de datos que pudo reconocer el ayudante, gracias al archivo hsqldb-ds.xml. Haz clic en Confirm and Deploy (Confirmar y Activar).
El siguiente paso te permite editar al pool de base de datos que fue reconocido. En este paso deberás especificar al jar controlador que declaraste cuando actualizaste al repositorio de Geronimo. Observa como se lista Driver JAR: ( JAR Controlador: ) en la siguiente figura.
Haz clic en Test Connection _(Probar Conexión)_ para verificar que proporcionaste todos los datos necesarios y que Geronimo pueda establecer una conexión.
Haz clic en Deploy (Activar), lo cual te llevará a la misma página de Step 2. Si deberÃas tener más pools definidos en el archivo, podrÃas repetir los pasos para importar los pools de bases de datos que elijas. Como en este ejemplo solo tenemos uno, tendrÃas que hacer clic en Finish (Finalizar) para completar el uso del ayudante de importación.
Ahora deberÃas ver al pool de bases de datos importado, DefaultDS.
Regresar a la sección superior
Este ayudante te ofrece dos alternativas para la importación de pools de bases de datos BEA Weblogic existentes. La primera es proporcionando un archivo de configuración (por ej. config.xml); si seleccionas esta opción, el ayudante convertirá a tantos campos que pueda, y te solicitará el ingresar manualmente aquellos que no pudo convertir. Por ejemplo, uno de los valores que deberás proporcionar, es la contraseña de la base de datos.
La segunda alternativa es factible si tienes tanto al servidor Apache Geronimo como al servidor BEA Weblogic instalados en la misma máquina; en esta alternativa puedes especificar directamente al path de instalación de Weblogic asà como los directorios del dominio. Esta alternativa tiene la ventaja de ser capaz de leer directamente las contraseñas de bases de datos.
Independientemente de la altermativa que eligieses, necesitarás decir a Geronimo donde se encuentran los jars controladores de las bases de datos. A continuación se presenta el resumen de pasos para la declaración del jar controlador PointBase en Geronimo.
Regresa a la Consola de Administración Geronimo y haz clic en la liga Database Pools (Pools de Bases de Datos). Desde el portlet Database Pools haz clic en Import from WebLogic 8.1 (Importar de WebLogic 8.1). La siguiente figura ilustra al ayudante de importación.
Para este ejemplo particular nos enfocaremos en la segunda alternativa. Un dominio example (ejemplo) por defecto fue creado en el servidor WebLogic con toda aplicación ejemplo también incluida por defecto. Este dominio se licaliza en el directorio <bea_home>\user_projects\domains\examples.
En la primer pantalla del ayudante de importación (ilustrado en la figura previa) proporciona al Domain directory path: ( Path del directorio del cominio: ) y haz clic en Next (Siguiente).
Domain directory path: <bea_home>\user_projects\domains\examples
weblogic81/server/lib path: <bea_home>\weblogic81\server\lib
El Step 2 (Paso 2) ilustrado en la siguiente figura, te muestra una lista de pools de bases de datos reconocidos del dominio WebLogic que especificaste y que pueden ser importados a Apache Geronimo.
Nota que el dominio WebLogic del cual estas intentando importar al pool de bases de datos, debe estar activo si deseas probar exitosamente la conexión. Para este ejemplo haz clic en la segunda Confirm and Deploy (Confirma y Activa) de la lista, la cual corresponde a examples-dataSource-demoPool.
En el siguiente paso selecciona al Driver JAR: ( JAR Controlador: ) que creaste recientemente en el repositorio Geronimo.
Nota que la contraseña de la base de datos ha sido reconocida. Haz clic en Test Connection _(Probar Conexión)_, con lo cual deberÃas ver una confirmación similar a la siguiente figura. Haz clic en Deploy (Activar).
La siguiente página regresa al Step 2, en esta ocasión también desplegará los pools de bases de datos restantes y disponibles para su importación, y también mostrará el estado de importación del pool de base de datos recién importado. En este momento puedes hacer clic en Skip Remaining Pools (Omitir Pools Restantes) para dejar al ayudante de importación.
Ahora deberÃas observar listado en el portlet de pool de base de datos, al pool de base de datos que acabas de importar.
Para eliminar los pools de bases de datos, puedes usar la Herramienta de activación. Entre otras cosas, dicha herramienta te permite listar a los módulos disponibles, donde la pool que acabas de activar será listada como un módulo.
Para listar a todo módulo disponible, teclea el comando siguiente:
E:\geronimo\bin>deploy --user system --password manager list-modules | grep user/database
+ user/database-pool-Derby_Test/1/car
Para este comando ejemplo, grep fue usado con fines de despliegue; el uso de grep es opcional. |
Una vez que tienes identificado el pool de base de datos (en este ejemplo user/database-pool-Derby_Test/1/car) podrÃas eliminarle mediante el tecleo del siguiente comando:
E:\geronimo\bin>deploy --user system --password manager undeploy user/database-pool-Derby_Test/1/car
Module user/database-pool-DerbyTest/1/car unloaded.
Module user/database-pool-DerbyTest/1/car uninstalled.
Undeployed user/database-pool-DerbyTest/1/car
Como paso adicional para verificar la baja del pool de base de datos, puedes ejecutar al siguiente comando; no deberÃan listarse registros.
deploy --user system --password manager list-modules | grep Derby_Test
Regresar a la sección superior
Para crear una nueva base de datos e integrarla a Geronimo, el portlet DB Manager (Administrador de BD) está disponible. Cerca de la porción inferior del menú de Console Navigation _(Navegación de Consola), navega en Misc -> Embedded DB -> DB Manager. Ese portlet invoca a los portlets DB Viewer _(Visor de BD) y Run SQL (Ejecuta SQL), ilustrados en las siguientes figuras.
El portlet DB Viewer despliega toda base de datos disponible, sus tablas (de aplicación y sistema) y despliega el contenido de las tablas.
El portlet Run SQL te permite ejecutar comandos SQL para crear o eliminar bases de datos, y también para modificar el contenido de sus tablas. Este portlet te proporciona menúes de selección para elegir la base de datos sobre la cual desees ejecutar al comando.
Para crear una base de datos de pruebas, especifica test (prueba) en el campo Create DB: ( Crear BD: ) y haz clic en Create (Crear). Después de pocos segundos, deberÃas ver un mensaje de confirmación cerca de la porción inferior del portlet Run SQL, indicando Database created: test (Base de datos creada: prueba). Ahora se deberÃa ver el registro de la base de datos test en el portlet DB Viewer.
Si deseas ejecutar cualquier comando SQL en esa base de datos, asegúrate de elegir test del menú de selección Use DB: ( Usa BD: ), para después ingresar el comando SQL y finalmente hacer clic al botón Run SQL. Los resultados del comando se deplegarán cerca de la porción inferior del portlet.
Regresar a la sección superior
Para configurar JMS, los portlets JMS Connection Factories _(Fábricas de Conexión JMS)_ y JMS Destination Manager (Administrador de Destino JMS) son elegibles mediante JMS en el menú de Console Navigation _(Navegación de Consola)_ ubicado a mano izquierda. El portlet JMS Connection Factories, ilustrado en la figura siguiente, despliega a todo conector JMS configurado en el servidor Geronimo y te permite agregar una nueva Fábrica de Conexión JMS.
El portlet JMS Destination Manager presenta la lista de toda cola (queue) y tópico configuradas(os) en el servidor Geronimo.
En Apache Geronimo v1.0 estos portlets no estan totalmente implementados y necesitarás crear planes de activación (deployment plans) y herramientas de lÃnea de comandos para activar a estas configuraciones. Detalles adicionales para la configuración JMS y su integración se encuentran cubiertos en la sección Integrando un Proveedor JMS de terceros.
Regresar a la sección superior
Esta sección se concentra en las alternativas disponibles para la administración de aplicaciones, y te mostrará el como aplicar las actividades de administración de aplicaciones, usando tanto la Consola de Administración Geronimo y opciones de lÃnea de comandos. Para los ejemplos mostrados en esta sección, estaremos usando la aplicación ejemplo HolaMundo.war creada en la sección GuÃa rápida - Apache Geronimo para el impaciente.
Para ejecutar estas actividades actualmente tienes tres opciones disponibles, las cuales usan:
Cuando empaques tu aplicación, podrÃas incluir o no incluir al plan de activación (deployment plan) en el paquete. Al momento de activación, Geronimo buscará los planes de activación geronimo-web.xml y web.xml, en el directorio WEB-INF dentro de tu aplicación empaquetada. Si Geronimo no puede encontrar dichos descriptores, intentará activar a la aplicación usando configuraciones por defecto. Si al emplear configuraciones por defecto falla, necesitarás proporcionar un plan de activación, ya sea re-empaquetando la aplicación ó como plan de activación externo; en las siguientes secciones discutiremos más a fondo dichas alternativas.
Para instalar una nueva aplicación mediante la Consola de Administración Geronimo, el portlet Install New Applications (Instalar Aplicaciones Nuevas) esta disponible al elegir Deploy New (Activar Nuevo) en el menú de la Console Navigation _(Navegación de Consola)_ ubicado a mano izquierda. Este portlet también te permite el iniciar automáticamente a la aplicación justo después de su activación.
Como se mencionó previamente, para este ejemplo emplearemos la aplicación JSP simple HolaMundo, creada en la sección GuÃa rápida - Apache Geronimo para el impaciente. Para ese ejemplo, los planes de activación ya están incluidos en el paquete.
Desde el portlet Install New Applications haz clic en Browse (Navegar) para especificar la ruta al HolaMundo.war en la sección Archive: ( Archivo: ). Asegurate de habilitar (por defecto, está habilitado) la opción Start app after install _(Iniciar aplicación después de instalar)_ y después haz clic en Install (Instalar).
DeberÃas obtener al mensaje de confirmación " The application was successfully deployed. " _(La aplicación fue activada exitosamente)_ en la sección superior del portlet.
Otra forma de comprobar que la aplicación fue instalada e iniciada exitosamente, se logra mediante la verificación del portlet Installed Web Applications (Aplicaciones Web Instaladas), el cual esta disponible mediante al elegir Web App WARs (WARs de Aplicaciones Web) en el menú de la Console Navigation _(Navegación de Consola)_ ubicado a mano izquierda. DeberÃas observar a la aplicación listada como HolaMundo y con el estado running (ejecutando).
Como la aplicación que instalamos es HolaMundo.WAR, usamos ese portlet; cuando instalas un EAR podrÃas verificar su estado mediante el portlet Installed Application EARs (Aplicaciones EAR Instaladas), el cual esta disponible al elegir Application EARs (EARs de Aplicaciones) en el menú de la Console Navigation _(Navegación de Consola)_ ubicado a mano izquierda. El procedimiento de instalación es el mismo, tanto para aplicaciones WAR como EAR.
Para eliminar a las aplicaciones mediante la Consola de Administración Geronimo usarás los dos últimos portlets, ya sea Installed Web Applicacions ó Installed Application EARs, dependiendo de la aplicación a desinstalar.
Para nuestro ejemplo, ingresa al portlet de Aplicaciones Web Instaladas y haz clic en Uninstall (Desinstalar) para el Component Name (Nombre del Componente) HolaMundo. Lo anterior detendrá a la aplicación como primer paso y después la desintalará. El mensaje de confirmación " Uninstalled application " _(Aplicación desintalada)_ deberÃa aparecer en la parte inferior del portlet.
Estos son los pasos básicos para la instalación y desinstalación de aplicaciones mediante la Consola de Administración Geronimo; las dos secciones siguientes se concentarán en opciones de lÃnea de comandos.
Regresar a la sección superior
La herramienta de activación te permitirá, entre otras cosas, el instalar y desinstalar aplicaciones mediante la lÃnea de comandos. En esta sección analizaremos esas dos tareas para la aplicación ejemplo; esta herramienta es completamente cubierta en la sección Herramienta de activación.
Para activar la aplicación ejemplo HolaMundo.war con la Herramienta de Activación, abre una ventana de lÃnea de comandos y desde el directorio <geronimo_home>\bin teclea el siguiente comando:
deploy --user system --password manager deploy <app_home>\HolaMundo.war
Una vez activada la aplicación, deberÃas observar un mensaje de confirmación similar al siguiente:
E:\geronimo-1.0_Jetty\bin>deploy --user system --password manager deploy ..\..\HolaMundo\HolaMundo.war
Deployed HolaMundo @ http://localhost:8080/hola
A diferencia de la activación mediante la Consola de Administración Geronimo, la herramienta de lÃnea de comandos te proporciona mayor información en el mensaje de confirmación. Por ejemplo, recibes el Component Name (Nombre del Componente) (también conocido como ConfigId) y también recibes la raÃz del contexto (context root) en donde la aplicación fue activada. Esto es muy útil cuando se instala, prueba y desinstala a distintas aplicaciones donde serÃa complicado el recordar todos esos valores.
También puedes usar la Herramienta de activación para listar a toda aplicación instalada. El comando list-modules _(listar-módulos)_ te permite el listar a toda aplicación, e incluso te permite filtrar la petición mediante la solicitud de sólo las aplicaciones started (iniciadas) ó stopped (detenidas). El comando list-modules sin parámetro adicional, por defecto te listará a toda aplicación iniciada.
Para desintalar una aplicación, podrÃas requerir el listarla para obtener el Nombre del Componente (ó ConfigId) correcto. Ejecuta al siguiente comando desde el directorio <geronimo_home>\bin :
deploy --user system --password manager list-modules
Recibirás una lista similar a la mostrada en el ejemplo siguiente:
E:\geronimo-1.0_Jetty\bin>deploy --user system --password manager list-modules
Found 33 modules
+ geronimo/j2ee-deployer/1.0/car
+ geronimo/webconsole-jetty/1.0/car
`-> geronimo-console-standard-1.0.war @ http://localhost:8080/console-standard
`-> geronimo-console-framework-1.0.war @ http://localhost:8080/console
+ geronimo/welcome-jetty/1.0/car @ http://localhost:8080/
+ geronimo/daytrader-derby-jetty/1.0/car
`-> daytrader-web-1.0.war @ http://localhost:8080/daytrader
`-> daytrader-ejb-1.0.jar
`-> daytrader-streamer-1.0.jar
`-> daytrader-wsappclient-1.0.jar
`-> TradeDataSource
`-> TradeJMS
+ geronimo/jetty-deployer/1.0/car
+ geronimo/directory/1.0/car
+ geronimo/ldap-realm/1.0/car
+ geronimo/j2ee-system/1.0/car
+ geronimo/activemq/1.0/car
+ geronimo/j2ee-server/1.0/car
+ geronimo/ldap-demo-jetty/1.0/car @ http://localhost:8080/ldap-demo
+ geronimo/jetty/1.0/car
+ geronimo/geronimo-gbean-deployer/1.0/car
+ geronimo/jsp-examples-jetty/1.0/car @ http://localhost:8080/jsp-examples
+ geronimo/rmi-naming/1.0/car
+ geronimo/servlets-examples-jetty/1.0/car @ http://localhost:8080/servlets-examples
+ geronimo/remote-deploy-jetty/1.0/car @ http://localhost:8080/remote-deploy
+ geronimo/system-database/1.0/car
+ geronimo/j2ee-security/1.0/car
+ HolaMundo @ http://localhost:8080/hola
+ geronimo/activemq-broker/1.0/car
+ geronimo/jmxdebug-jetty/1.0/car @ http://localhost:8080/debug-tool
+ geronimo/hot-deployer/1.0/car
+ geronimo/uddi-jetty/1.0/car
`-> uddi-jetty @ http://localhost:8080/juddi
`-> uddi-db
geronimo/client-system/1.0/car
geronimo/online-deployer/1.0/car
geronimo/client-corba/1.0/car
geronimo/daytrader-derby-jetty-streamer-client/1.0/car
geronimo/client-security/1.0/car
geronimo/shutdown/1.0/car
geronimo/client/1.0/car
geronimo/javamail/1.0/car
geronimo/j2ee-corba/1.0/car
Busca el registro HolaMundo, el cual es el valor que deberás emplear cuando intentes desinstalar a la aplicación.
Para desinstalar la aplicación, ejecuta el siguiente comando desde el directorio <geronimo_home>\bin usando al Nombre del Componente que identificaste ante el listado de los módulos.
deploy --user system --password manager undeploy HelloWorld
El comando primero intentará detener a la aplicación en ejecución y después la desinstalará. DeberÃas ver un mensaje de confirmación similar al siguiente:
E:\geronimo-1.0_Jetty\bin>deploy --user system --password manager undeploy HolaMundo
Module HolaMundo unloaded.
Module HolaMundo uninstalled.
Undeployed HolaMundo
En este ejemplo has usado la misma herramienta con tres comandos distintos:
Estas no son las únicas opciones y comandos disponibles para esta herramienta; por favor visita la sección Herramienta de activación para obtener detalles adicionales.
Regresar a la sección superior
Apache Geronimo soporta Hot Deployment _(Activación en Vivo)_. Esto significa que puedes copiar un archivo JAR de aplicación al directorio <geronimo_home>/deploy y la aplicación será activada automáticamente. Lo anterior también funcionará para la desinstalación ó actualización de aplicaciones previamente activadas mediante este método. Como alternativa, también podrÃas copiar al directorio (umpacked - "desempacado") del módulo aplicación en lugar de copiar al JAR como archivo.
Nota que con este método de activación debes incluir al deployment plan _(plan de activación)_ en el paquete de la aplicación; este método no soporta planes de activación externos. También nota que aplicaciones activadas mediante la Herramienta de activación ó la Consola de Administración Geronimo, no estarán listadas en el directorio <geronimo_home>/deploy.
Cuando copies una aplicación al directorio deploy, digamos HolaMundo.war, observarás un mensaje de confirmación en la consola donde Geronimo este ejecutándose, indicando que la aplicación fue activada y el contexto para tener acceso a la aplicación.
00:35:59,421 INFO [Hot Deployer] Deploying HolaMundo.war
Deployed HolaMundo @ http://localhost:8080/hola
Para eliminar la aplicación, sólo borra al archivo (ó carpeta) WAR ó EAR del directorio deploy. Cuando la aplicación ha sido eliminada, deberÃas observar un mensaje de confirmación en la consola donde Geronimo esté ejecutándose, indicando que la aplicación fue desactivada.
00:39:42,521 INFO [Hot Deployer] Undeploying HolaMundo.war
Undeployed HolaMundo
Regresar a la sección superior
Puedes cambiar el estado de una aplicación en dos formas distintas. Puedes usar la Herramienta de activación ó la Consola de Administración Geronimo.
Como se mencionó previamente, la *Herramienta de activación* tiene muchos comandos. Al momento hemos explorado primordialmente a deploy y undeploy, y brevemente a list-modules. Esta sección se concentrará en el último comando para obtener el nombre del módulo del cual queremos cambiar el estado, e introducirá dos nuevos comandos: start (iniciar) y stop (detener). Más adelante discutiremos el uso de la Consola de Administración Geronimo como método alternativo.
El comando list-module acepta a los tres parámetros siguientes:
Esto es útil para identificar el estado de un módulo particular y al ID propio del módulo. Usaremos este comando para identificar a la aplicación HolaMundo y cambiar su estado.
Desde una ventana de la lÃnea de comandos, ejecuta al siguiente comando desde el directorio <geronimo_home>\bin para listar a todo módulo:
deploy --user system --password manager list-modules
Recibirás una lista de todo módulo instalado en el servidor. Nota que los módulos iniciados son distinguidos con el signo + ubicado a su izquierda, y dichos módulos también se colocan como inicio de la lista.
E:\geronimo-1.0_Jetty\bin>deploy --user system --password manager list-modules
Found 33 modules
+ geronimo/j2ee-deployer/1.0/car
+ geronimo/webconsole-jetty/1.0/car
`-> geronimo-console-standard-1.0.war @ http://localhost:8080/console-standard
`-> geronimo-console-framework-1.0.war @ http://localhost:8080/console
+ geronimo/welcome-jetty/1.0/car @ http://localhost:8080/
+ geronimo/daytrader-derby-jetty/1.0/car
`-> daytrader-web-1.0.war @ http://localhost:8080/daytrader
`-> daytrader-ejb-1.0.jar
`-> daytrader-streamer-1.0.jar
`-> daytrader-wsappclient-1.0.jar
`-> TradeDataSource
`-> TradeJMS
+ geronimo/jetty-deployer/1.0/car
+ geronimo/directory/1.0/car
+ geronimo/ldap-realm/1.0/car
+ geronimo/j2ee-system/1.0/car
+ geronimo/activemq/1.0/car
+ geronimo/j2ee-server/1.0/car
+ geronimo/ldap-demo-jetty/1.0/car @ http://localhost:8080/ldap-demo
+ geronimo/jetty/1.0/car
+ geronimo/geronimo-gbean-deployer/1.0/car
+ geronimo/jsp-examples-jetty/1.0/car @ http://localhost:8080/jsp-examples
+ geronimo/rmi-naming/1.0/car
+ geronimo/servlets-examples-jetty/1.0/car @ http://localhost:8080/servlets-examples
+ geronimo/remote-deploy-jetty/1.0/car @ http://localhost:8080/remote-deploy
+ geronimo/system-database/1.0/car
+ geronimo/j2ee-security/1.0/car
+ HolaMundo @ http://localhost:8080/hola
+ geronimo/activemq-broker/1.0/car
+ geronimo/jmxdebug-jetty/1.0/car @ http://localhost:8080/debug-tool
+ geronimo/hot-deployer/1.0/car
+ geronimo/uddi-jetty/1.0/car
`-> uddi-jetty @ http://localhost:8080/juddi
`-> uddi-db
geronimo/client-system/1.0/car
geronimo/online-deployer/1.0/car
geronimo/client-corba/1.0/car
geronimo/daytrader-derby-jetty-streamer-client/1.0/car
geronimo/client-security/1.0/car
geronimo/shutdown/1.0/car
geronimo/client/1.0/car
geronimo/javamail/1.0/car
geronimo/j2ee-corba/1.0/car
Ahora nuestro objetivo es " + HolaMundo @ http://localhost:8080/hola " , el cual presenta estado started (iniciado) ya que cuenta con + a su izquierda. Como alternativa, puedes ejecutar al siguiente comando para listar sólo a módulos iniciados:
deploy --user system --password manager list-modules --started
Para detener al módulo HolaMundo, teclea el siguiente comando:
deploy --user system --password manager stop HelloWorld
Recibirás un mensaje de confirmación para indicar que el módulo ha sido detenido.
Cuando listas a todo módulo detenido, ahora deberÃas observar que a esa lista se agregó al módulo HolaMundo. Observa al comando y sus resultados en el siguiente ejemplo.
E:\geronimo-1.0_Jetty\bin>deploy --user system --password manager list-modules --stopped
Found 10 modules
geronimo/client-system/1.0/car
geronimo/online-deployer/1.0/car
geronimo/client-corba/1.0/car
geronimo/daytrader-derby-jetty-streamer-client/1.0/car
geronimo/client-security/1.0/car
geronimo/shutdown/1.0/car
HolaMundo
geronimo/client/1.0/car
geronimo/javamail/1.0/car
geronimo/j2ee-corba/1.0/car
Para iniciar los módulos, sólo necesitas emplear start en lugar de stop.
Como alternativa a la lÃnea de comandos, puedes usar la Consola de Administración Geronimo para cambiar el estado de los módulos. Abre la Consola de Administración Geronimo y navega a Applications (Aplicaciones) en el menú de la Console Navigation _(Navegación de Consola)_ ubicado a mano izquierda. Ahà encontrarás Application EARs _(EARs de Aplicación)_ y Web App WARs _(WARs de Aplicación Web)_; dependiendo del tipo de aplicación de la cual quieras cambiar el estado, eligirás ya sea Application EARs ó Web App WARs. Para este ejemplo continuaremos el uso de HolaMundo.war como la aplicación en cuestión, por lo cual elegiremos Web App WARs.
Previamente usamos este portlet para instalar y desintalar aplicaciones mediante la consola. Desde este mismo portlet también puedes cambiar el estado de las aplicaciones. Los comandos disponibles dentro del portlet cambiarán dependiendo del estado de cada aplicación. Si la aplicación esta en estado running (iniciada), sólo el comando Stop (Detener) será desplegado. Si la aplicación esta stopped (detenida), sólo el comando Start (iniciar) será desplegado. El comando Uninstall (Desinstalar) siempre se desplegará sin importar el estado de la aplicación. Para cambiar el estado de la aplicación sólo haz clic al comando (Iniciar ó Detener).
Regresar a la sección superior
Esta sección cubre algunas de las tareas comunes relacionadas con seguridad, como el agregar y eliminar usuarios y grupos, la manipulación de certificados digitales y el incremento del nivel de seguridad mediante el uso de distintos reinos (realms) y métodos de autenticación. Consulte la sección de Seguridad para mayor detalle en como se implementa la seguridad en Apache Geronimo.
Puedes agregar usuarios y grupos mediante la Consola de Administración Geronimo ó con la modificación de algunos archivos de configuración. Iniciaremos de forma simple, con el uso del reino proporcionado por defecto en Geronimo. Después, ante nuestra exploración de los distintos reinos y configuraciones de seguridad, regresaremos y visitaremos nuevamente los temas que sean necesarios.
Para administrar usuarios y grupos vÃa la Consola de Administración Geronimo, el portlet Console Realm (Reino de Consola) esta disponible a mano izquierda en el menú Console Navigation _(Navegación de Consola)_. Ahà encontrarás dos portlets, uno para la administración de usuarios y otro para la administración de grupos, los cuales estan ilustrados en las figuras siguientes.
Para cambiar la contraseña (password) de un usuario, haz clic en el usuario dentro del portlet Console Realm Users (Consola del Reino de Usuarios), lo cual te proporcionará su UserID y Password, para que puedas actualizar dicho perfil.
Para agregar un nuevo usuario, haz clic en Create New User (Crear Nuevo Usuario), lo cual te solicitará un UserID y Password (esta última, en dos ocasiones); ingresa dichos valores y haz clic en Add (Agregar).
Para eliminar un usuario, haz clic en el Delete (Borrar) correspondiente, lo cual te solicitará una confirmación para el borrado de dicho usuario; se confirma con clic cn OK.
Al haber creado nuevos usuarios, puedes agregarlos a un grupo. Por defecto, el grupo admin esta disponible y el usuario system se encuentra en dicho grupo. Si haces clic en el grupo admin observarás al usuario system en la ventana a la derecha, mientras que cualquier otro usuario disponible se enlisatará en la ventana a la izquierda.
Para agregar un nuevo usuario a ese grupo, primero elige al usuario y después haz clic en Add >> (Agregar >>) y finalmente clic en Update (Actualizar).
Para crear un nuevo grupo haz clic en Create New Group (Crear Nuevo Grupo), este paso es muy similar al previo. Además de proporcionarte la opción de agregar usuarios al nuevo grupo, también deberás proporcionar el nombre del grupo. Cuando ingreses el nuevo nombre de grupo y agregues los usuarios, haz clic en Add (Agregar) para finalizar.
Los cambios que hiciste vÃa los portlets Console Realm Users y Console Realm Groups son reflejados en dos archivos distintos, los cuales son users.properties (usuarios.propiedades) y groups.properties (grupos.propiedades) respectivamente, y se localizan en el directorio <geronimo_home>\var\security.
Cuando elimines un usuario desde la consola, el usuario no será dado de baja del grupo al cual pertenezca. El portlet Console Realm Users no modificará los grupos. |
De forma equivalente, es posible administrar a los usuarios y grupos mediante la modificación directa de los archivos citados:
users.properties
groups.properties
users.properties usa el formato <user_name>=<password>, groups.properties usa el formato <group_name>=<user_name>. Observa los ejemplos siguientes para detalles adicionales.
usuario2=usuario2 usuario1=usuario1 system=manager
Como estamos utilizando la configuración básica, por defecto, de seguridad, observarás que los IDs y contraseñas se almacenan en texto plano. Con ello puedes agregar, eliminar y cambiar contraseñas desde dicho archivo.
admin=system usuarios=usuario1,usuario2
Asà como con usuarios, en groups.properties puedes agregar y eliminar grupos, asà como agregar y eliminar usuarios en dichos grupos.
Los archivos mencionados en estas secciones junto con toda la configuración de seguridad, en adición a nombres de usuarios y sus contraseñas, son definidos en el reino de seguridad geronimo-properties-realm (reino-propiedades-geronimo), cubierto en la siguiente sección.
Regresar a la sección superior
Antes de continuar, es recomendable que te familiarices con conceptos y arquitectura de seguridad de Geronimo. Visita la sección de Seguridad para detalles en como se implementa la seguridad en Geronimo. Los dos Conceptos de Seguridad principales sobre los cuales la arquitectura de seguridad Apache Geronimo esta construida, son el Login Domain (Dominio de Ingreso) y Security Realm (Reino de Seguridad); en esta sección nos enfocaremos en el último.
Para administrar reinos de seguridad vÃa la Consola de Administración Geronimo, el portlet Security Realms (Reinos de Seguridad) esta disponible en el menu de Concole Navigation _(Navegación de Consola)_ ubicado a mano izquierda. Este portlet te permite agregar un nuevo reino de seguridad ó editar uno existente. Para eliminar reinos, normalmente emplearÃas la opción de lÃnea de comandos, con la Herramienta de activación (Deployer tool).
Enlistados en dicho portlet, encontrarás a todo reino de seguridad disponible. Por defecto, el reino de seguridad empleado por Geronimo para autenticar usuarios vÃa el archivo de propiedades, es geronimo-properties-realm (reino-propiedades-geronimo).
Cuando edites un reino existente (en este caso, geronimo-properties-realm), se te presentará la pantalla siguiente; nota que no serás capaz de cambiar el nombre del reino (realm name) ni el nombre acceso del dominio (login domain name).
El siguiente ejemplo ilustra el plan de activación (deployment plan) generado por este portlet.
<configuration configId="SecurityRealm-geronimo-properties-realm" xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0"> <gbean name="geronimo-properties-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> <attribute name="realmName">geronimo-properties-realm</attribute> <reference name="ServerInfo"> <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-system/1.0/car,J2EEServer=geronimo,j2eeType=GBean,name=ServerInfo</gbean-name> </reference> <reference name="LoginService"> <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-security/1.0/car,J2EEServer=geronimo,j2eeType=JaasLoginService,name=JaasLoginService</gbean-name> </reference> <xml-reference name="LoginModuleConfiguration"> <log:login-config xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-1.0"> <log:login-module control-flag="REQUIRED" server-side="true" wrap-principals="false"> <log:login-domain-name>geronimo-properties-realm</log:login-domain-name> <log:login-module-class>org.apache.geronimo.security.realm.providers.PropertiesFileLoginModule</log:login-module-class> <log:option name="usersURI">var/security/users.properties</log:option> <log:option name="groupsURI">var/security/groups.properties</log:option> </log:login-module> </log:login-config> </xml-reference> </gbean> </configuration>
Como se mencionó previamente, este plan es para el reino de seguridad por defecto, basado en archivo de propiedades. Cuando creas un nuevo reino, tendrás que elegir de los siguientes tipos de reinos disponibles:
La última opcion disponible te permite crear tu propio tipo adaptado de reino, cuando ninguno de los disponibles cumple con las necesidades de tu ambiente.
Apache Geronimo tiene un reino de archivo de propiedades previamente configurado, el cual es el reino empleado por defecto para la autenticación. Geronimo también viene con un grupo de aplicaciones ejemplo; una de dichas aplicaciones proporciona un reino de seguridad adicional para LDAP. Para este ejemplo, nos enfocaremos en un tipo distinto, emplearemos una base de datos para la verificación y consulta de nombres de usuario y sus contraseñas.
Para este ejemplo creamos una nueva base de datos, llamada BaseDeDatosDeSeguridad, usando la base de datos Derby pre-construida. Los siguientes pasos resumen al procedimiento seguido para crear la base de datos y tablas, cargar algunos datos ejemplo y crear al pool de conexiones. Instrucciones detalladas en como definir pools de conexiones a base de datos son descritas en la sección Configurando pools de bases de datos.
Para crear un nuevo reino de seguridad, haz clic en Add new security realm (Agregar nuevo reino de seguridad) desde el portlet Security Realms (Reinos de Seguridad).
Ingresa reino_de_seguridad_derby en el campo Name of Security Realm: (Nombre del Reino de Seguridad: ) y selecciona Database (SQL) Realm (Reino (SQL) Base de datos) del menú Realm type: (Tipo de Reino: ) y haz clic en Next (Siguiente).
La siguiente pantalla configura al módulo de acceso (login). Los primeros dos campos que necesitarás llenar, variarán potencialmente de acuerdo al tupo de base de datos. En este caso, estamos usando la base de datos Derby embebida, por lo que los select SQL de User y Group deberÃan leerse como sigue:
User SELECT SQL: select nombreusuario, password from APP.usuarios where nombreusuario=?
Group SELECT SQL: select nombreusuario, nombregrupo from APP.grupos where nombreusuario=?
Nota que APP es el esquema por defecto para la base de datos Derby embebida, y requiere preceder a la tabla en el enunciado SQL. Estos enunciados tienden a ser distintos de una base de datos a otra; por ejemplo, este procedimiento también fue probado con DB2, donde los enunciados SQL empleados fueron:
User SELECT SQL: select nombreusuario, password from usuarios where nombreusuario=?
Group SELECT SQL: select nombreusuario, nombregrupo from grupos where nombreusuario=?
Al haber ingresado los enunciados SQL para la obtención de usuarios y grupos, necesitas elegir del menú Database Pool (Pool de Base de datos) al pool de conexiones a la base de datos que creaste en el paso previo (Crear pool de conexiones), para después hacer clic en Next (Siguiente).
No es necesario llenar los campos restantes, porque esa información ya ha sido proporcionada por el pool de conexiones a la base de datos. Si no estas empleando pools de conexiones a base de datos predefinidos, necesitarás proporcionar todos los campos faltantes.
El paso siguiente te permitirá el activar auditorÃa (auditing) para monitorear los intentos de acceso mediante este reino. En este paso también puedes configurar el bloqueo de cuentas, basándose en la cantidad de intentos de acceso fallidos dentro de un margen de tiempo especÃfico. La última opción en este paso, Store Password (Guardar Password), cuando esta habilitada permitirá al reino el guardar la password de usuario en una credencial privada en el Subject.
En este punto ya haz configurado al nuevo reino de seguridad; el siguiente paso es para probarlo y después activarlo. Haz clic en Test a Login (Probar un Acceso).
Ingresa un nombre y contraseña válidos para obtenerlos de la base de datos y haz clic en Next (Siguiente).
DeberÃas recibir un mensaje de confirmación indicando que el acceso fue exitoso; haz clic en Deploy Realm (Activar Reino) para cargar esta configuración al servidor.
Ahora tienes un nuevo, completamente configurado, reino de seguridad que comprueba nombre de usuarios y contraseñas desde la base de datos Derby incluida.
El siguiente ejemplo muestra al plan de activación (deployment plan) para este reino de seguridad. Como alternativa a la Consola de Administración Geronimo, puedes guardar este ejemplo en un archivo (por ej. reino_de_seguridad.xml) y activarlo mediante la Herramienta de activación, con la ejecución del siguiente comando:
<geronimo_home>\bin\deploy --user system --password manager deploy <realm_path>\reino_de_seguridad_derby.xml
<configuration configId="SecurityRealm-reino_de_seguridad_derby" xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0"> <import> <uri>user/database-pool-BaseDeDatosDeSeguridad/1/car</uri> </import> <gbean name="reino_de_seguridad_derby" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> <attribute name="realmName">reino_de_seguridad_derby</attribute> <reference name="ServerInfo"> <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-system/1.0/car,J2EEServer=geronimo,j2eeType=GBean,name=ServerInfo</gbean-name> </reference> <reference name="LoginService"> <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-security/1.0/car,J2EEServer=geronimo,j2eeType=JaasLoginService,name=JaasLoginService</gbean-name> </reference> <xml-reference name="LoginModuleConfiguration"> <log:login-config xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-1.0"> <log:login-module control-flag="REQUIRED" server-side="true" wrap-principals="false"> <log:login-domain-name>reino_de_seguridad_derby</log:login-domain-name> <log:login-module-class>org.apache.geronimo.security.realm.providers.SQLLoginModule</log:login-module-class> <log:option name="userSelect">select nombreusuario, password from APP.usuarios where nombreusuario=?</log:option> <log:option name="dataSourceApplication">null</log:option> <log:option name="groupSelect">select nombreusuario, nombregrupo from APP.grupos where nombreusuario=?</log:option> <log:option name="dataSourceName">BaseDeDatosDeSeguridad</log:option> </log:login-module> <log:login-module control-flag="OPTIONAL" server-side="true" wrap-principals="false"> <log:login-domain-name>reino_de_seguridad_derby-Audit</log:login-domain-name> <log:login-module-class>org.apache.geronimo.security.realm.providers.FileAuditLoginModule</log:login-module-class> <log:option name="file">var/log/reinoSeguridadDerby.log</log:option> </log:login-module> <log:login-module control-flag="REQUISITE" server-side="true" wrap-principals="false"> <log:login-domain-name>reino_de_seguridad_derby-Lockout</log:login-domain-name> <log:login-module-class>org.apache.geronimo.security.realm.providers.RepeatedFailureLockoutLoginModule</log:login-module-class> <log:option name="lockoutDurationSecs">60</log:option> <log:option name="failurePeriodSecs">10</log:option> <log:option name="failureCount">3</log:option> </log:login-module> </log:login-config> </xml-reference> </gbean> </configuration>
Si deseas probar rápidamente este reino, puedes emplear la aplicación LDAP ejemplo cubierta en la sección Configurando LDAP. Sólo necesitarás cambiar su descriptor de activación deployment descriptor geronimo-web.xml por el que se muestra a continuación, para después reempacar la aplicación y activarla.
Nota que sólo cambiamos del plan original, el nombre del reino, de ldap-realm a reino_de_seguridad_derby.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/web" xmlns:sec="http://geronimo.apache.org/xml/ns/security" configId="org/apache/geronimo/ldap-secure-demo"> <context-root>/ldap-demo</context-root> <context-priority-classloader>false</context-priority-classloader> <!-- <security-realm-name>ldap-realm</security-realm-name> --> <security-realm-name>reino_de_seguridad_derby</security-realm-name> <security> <default-principal realm-name="derby_security_realm"> <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="system"/> </default-principal> <role-mappings> <role role-name="content-administrator"> <realm realm-name="derby_security_realm"> <principal class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal" name="admin" designated-run-as="true"/> <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="system"/> </realm> </role> <role role-name="guest"> <realm realm-name="derby_security_realm"> <principal class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal" name="guest" designated-run-as="true"/> <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="user1"/> <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="user2"/> </realm> </role> </role-mappings> </security> </web-app>
Sigue las instrucciones citadas en la sección Configurando LDAP para reempacar y activar la aplicación. Cuando la pruebes, estarás empleando al reino SQL de la base de datos. VerifÃcalo unos minutos, con lo que deberÃas obtener intentos exitosos de acceso almacenados en el archivo de bitácora que especificaste cuando creaste a este reino de seguridad (en este ejemplo var/log/reinoSeguridadDerby.log).
03/01/2006 15:56:33 - Authentication attempt - usuariouno 03/01/2006 15:56:33 - Authentication succeeded - usuariouno 03/01/2006 16:10:05 - Authentication attempt - usuariodos 03/01/2006 16:10:05 - Authentication succeeded - usuariodos
Regresar a la sección superior
Para administrar certificados SSL, el portlet Keystore Configuration _(Configuración Keystore)_ esta disponible al elegir Keystore en el menú de la Console Navigation _(Navegación de Console)_, ubicado a mano izquierda. Desde dicho portlet puedes importar algún certificado existente ó crear uno nuevo.
Los certificados en Geronimo son almacenados en un keystore ubicado en <geronimo_home>\var\security\ssl-keystore-1. Dicho archivo keystore ssl no existe hasta que crees la primer llave privada.
Si ya cuentas con un certificado, puedes hacer clic en import trusted certificate (importar certificado confiable).
Especifica la ubicación del archivo del certificado y haz clic en View Certificate (Ver Certificado). La información del certificado será desplegada, y deberÃas agregar un alias para identificar dicho certificado; posteriormente, da clic en Import (Importar) para agregarlo al keystore. Ahora deberÃas ver que el tamaño de keystore ha incrementado.
Para generar una llave, da clic en generate key pair (generar par de llave). En la siguiente pantalla ingresa la información relevante y da clic en Submit (Enviar). Para este ejemplo, ingresamos los siguientes valores:
Alias: | Servidor Geronimo |
Key Algorithm: | RSA |
Key Size: | 1024 |
Signature Algorithm: | MD5withRSA |
Validity: | 2000 |
Common Name (CN): | 127.0.0.1 |
Organizational Unit (OU): | Geronimo |
Organizational Name (O): | Apache |
Locality (L): | Localidad |
State (ST): | Estado |
Country (C): | PaÃs |
Ahora deberÃas ver que el tamaño de keystore ha incrementado y que la llave privada que generaste se encuentra listada cerca de la parte inferior del portlet Keystore Configuration _(Configuración de Keystore). Da clic en view _(ver) de la llave privada que creaste; deberÃas ver los detalles del par de llave y las opciones para generar una petición de certificado y para importar una respuesta de certificado de una autoridad de certificación (CA).
Para generar una petición de certificado a enviar a la CA, da clic en generate CSR (generar CSR), copia el contenido generado y envÃalo a la CA (normalmente recibirÃas las instrucciones de la CA en el cómo enviar el CSR).
Al recibir la respuesta de la CA, comúnmente se acompaña de un archivo certificado; para agregar ese certificado al keystore sigue los pasos mencionados para import trusted certificate (importar certificado confiable).
Actualmente se conoce un tema ante el uso de certificados para asegurar nuevos oyentes HTTPS; ya existe un parche disponible y deberÃa ser aplicado a la siguiente versión de Apache Geronimo. Consulta JIRA GERONIMO-1503 para mayor detalle. |
Para usar tus propios certificados en lugar de los proporcionados por defecto en la instalación, necesitas crear un nuevo oyente HTTPS. Usa al portlet Network Listener (Oyente de Red) ubicado dentro de la opción Web Server (Servidor Web) en el menú de Console Navigation _(Navegación de Consola)_ a mano izquierda. Los pasos para agregar al nuevo oyente HTTPS fueron cubiertos previamente en la sección Agregar nuevo oyente (listener) HTTPS.