Pour déployer les applications d'identité sur la plate-forme JBoss Enterprise Application Platform (EAP), vous devez effectuer plusieurs opérations manuelles de configuration.
Installez JBoss EAP.
Installez les applications d'identité, comme indiqué à la section Utilisation de la procédure guidée pour installer les applications d'identité ou à la Section 33.3, Installation silencieuse des applications d'identité.
Créez un fichier messaging-jboss-beans.xml qui contient ce qui suit :
<?xml version="1.0" encoding="UTF-8"?>
<!--
========================================================================
Copyright (c) 2014 NetIQ Corporation. All Rights Reserved.
THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES
NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED COPIED, DISTRIBUTED,
REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, EXPANDED, COLLECTED,
COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN
CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND CIVIL
LIABILITY.
========================================================================
-->
<!--
Messaging beans
$Id: messaging-jboss-beans.xml 88672 2009-05-11 20:49:47Z anil.saldhana@jboss.com $
-->
<deployment xmlns="urn:jboss:bean-deployer:2.0">
<!-- messaging application-policy definition -->
<application-policy xmlns="urn:jboss:security-beans:1.0" name="messaging">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
<module-option name="unauthenticatedIdentity">guest</module-option>
<module-option name="dsJndiName">java:/IDMUADataSource</module-option>
<module-option name="principalsQuery">SELECT PASSWD FROM JBM_USER WHERE USER_ID=?</module-option>
<module-option name="rolesQuery">SELECT ROLE_ID, 'Roles' FROM JBM_ROLE WHERE USER_ID=?</module-option>
</login-module>
</authentication>
</application-policy>
<bean name="SecurityStore" class="org.jboss.jms.server.jbosssx.JBossASSecurityMetadataStore">
<!-- default security configuration -->
<property name="defaultSecurityConfig">
<![CDATA[
<security>
<role name="guest" read="true" write="true" create="true"/>
</security>
]]>
</property>
<property name="suckerPassword">changeit</property>
<property name="securityDomain">messaging</property>
<property name="securityManagement"><inject bean="JNDIBasedSecurityManagement"/></property>
<!-- @JMX annotation to export the management view of this bean -->
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.messaging:service=SecurityStore",exposedInterface=org.jboss.jms.server.jbosssx.JBossASSecurityMetadataStoreMBean.class)</annotation>
<!-- Password Annotation to inject the password from the common password utility
<annotation>@org.jboss.security.integration.password.Password(securityDomain="messaging",methodName="setSuckerPassword")</annotation>
-->
</bean>
<bean name="MessagingDeploymentTemplateInfoFactory"
class="org.jboss.managed.plugins.factory.DeploymentTemplateInfoFactory"/>
<bean name="QueueTemplate" class="org.jboss.profileservice.management.templates.JmsDestinationTemplate">
<property name="info"><inject bean="QueueTemplateInfo"/></property>
</bean>
<bean name="QueueTemplateInfo"
class="org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo">
<constructor factoryMethod="createTemplateInfo">
<factory bean="DSDeploymentTemplateInfoFactory"/>
<parameter class="java.lang.Class">org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo</parameter>
<parameter class="java.lang.Class">org.jboss.jms.server.destination.QueueServiceMO</parameter>
<parameter class="java.lang.String">QueueTemplate</parameter>
<parameter class="java.lang.String">A template for JMS queue *-service.xml deployments</parameter>
</constructor>
<property name="destinationType">QueueTemplate</property>
</bean>
<bean name="TopicTemplate" class="org.jboss.profileservice.management.templates.JmsDestinationTemplate">
<property name="info"><inject bean="TopicTemplateInfo"/></property>
</bean>
<bean name="TopicTemplateInfo"
class="org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo">
<constructor factoryMethod="createTemplateInfo">
<factory bean="DSDeploymentTemplateInfoFactory"/>
<parameter class="java.lang.Class">org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo</parameter>
<parameter class="java.lang.Class">org.jboss.jms.server.destination.TopicServiceMO</parameter>
<parameter class="java.lang.String">TopicTemplate</parameter>
<parameter class="java.lang.String">A template for JMS topic *-service.xml deployments</parameter>
</constructor>
<property name="destinationType">TopicTemplate</property>
</bean>
</deployment>
Remplacez le fichier messaging-jboss-beans.xml existant dans le dossier IDMProv/deploy/messaging par le fichier créé à l'Étape 3.
Recherchez le fichier de configuration du service de persistance pour JBoss. Par exemple, pour les bases de données PostgreSQL, le fichier est le postgresql-persistence-service.xml dans le répertoire novell\\jboss\docs\examples\jms.
Remplacez le fichier de configuration du service de persistance par celui situé dans le dossier d'exemples de base de données. Par exemple, pour PostgreSQL, il s'agit du fichier %jboss-root%/docs/examples/jms/postgresql-persistence-service.xml.
Ajoutez une copie du nouveau fichier de configuration du service de persistance au répertoire %jboss-root%/server/IDMProv/deploy/messaging/.
Ouvrez le fichier de configuration du service de persistance, puis procédez comme suit :
Remplacez le texte DefaultDS par IDMUADataSource.
Dans l'attribut Clustered, mettez en commentaire les lignes suivantes :
<attribute name="Clustered">false</attribute>
<!-- All the remaining properties only have to be specified if the post
office is clustered.
You can safely comment them out if your post office is non clustered
-->
<!-- The JGroups group name that the post office will use -->
<!--attribute
name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>-->
<!-- Max time to wait for state to arrive when the post office joins the
cluster -->
<!--attribute name="StateTimeout">30000</attribute>-->
<!-- Max time to wait for a synchronous call to node members using the
MessageDispatcher -->
<!--attribute name="CastTimeout">30000</attribute>-->
<!-- Set this to true if you want failover of connections to occur when a
node is shut down -->
<!--<attribute name="FailoverOnNodeLeave">false</attribute>
<depends
optional-attribute-name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</depends>
<attribute name="ControlChannelName">jbm-control</attribute>
<attribute name="DataChannelName">jbm-data</attribute>
<attribute
name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>-->
</mbean>
Remplacez les lignes suivantes par le texte spécifié :
|
Remplacez ce texte |
Par ce texte |
|---|---|
|
POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample') |
POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('p_user', 'changeit', 'IDMNotificationDurableTopic') |
|
POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest') |
POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('p_user','guest') |
|
POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john') |
POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','p_user') |
|
POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john') |
POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','p_user') |
Fermez et enregistrez le fichier de configuration du service de persistance.
Démarrez JBoss.
(Conditionnel) Si JBoss ne parvient pas à démarrer sur un serveur Windows, appliquez la solution indiquée dans l'article Solution 310273 “System properties cannot be set via run.bat script in EAP 5.2”.
Lorsque le problème se produit, le fichier server.log consigne une erreur d'exception pour AbstractKernelController. Pour plus d'informations, reportez-vous aux discussions du forum de la communauté JBoss concernant JBPAAP-10938 et JBPAAP-9581.
Ajoutez le compte administrateur JBoss au script stop-jboss.sh en procédant comme suit :
Ouvrez le script stop-jboss.sh.
À la fin de la commande shutdown.sh, ajoutez le compte utilisateur et le mot de passe de l'administrateur de JBoss. Utilisez la syntaxe suivante :
shutdown.sh -s jnp://localhost:1199 -u %user_account% -p %password%
Exemple :
shutdown.sh -s jnp://localhost:1199 -u admin -p novell
Fermez et enregistrez le script.
(Facultatif) Pour vérifier la configuration correcte, assurez-vous que le journal du serveur contient les informations suivantes :
INFO [ServerPeer] JBoss Messaging 1.4.7.GA server [0] started INFO [TopicService] Topic[/topic/IDMNotificationDurableTopic] started, fullSize=200000, pageSize=2000, downCacheSize=2000
INFO [RBPM] [com.novell.soa.notification.impl.jms.JMSConnectionMediator:init] Starting JMS notification system INFO [STDOUT] INFO [RBPM] [com.novell.soa.notification.impl.NotificationThread:run] Starting asynchronous notification system