Domanda

Qualcuno ha esperienza nel raggruppare una definizione dell'origine dati (-ds.xml) + login-config.xml come archivio di servizi in jboss? Ho combattuto con questo per un po 'invano. Sto solo cercando alcuni suggerimenti su come dovrei presentare il .sar. Voglio che .sar alla fine viva in un .ear. Eventuali suggerimenti molto apprezzati!

È stato utile?

Soluzione

Questo è un compito relativamente semplice.

Il tuo file EAR deve avere il seguente layout:

my-app.ear
    |+ META-INF
       |+ applications.xml and jboss-app.xml
    |+ myapp.war
    |+ myapp.jar
    |+ lib
    |+ my-ds.xml
    |+ my-login-module-service.xml

dove my-ds.xml contiene la definizione dell'origine dati come al solito. my-login-module-service.xml definisce MBean in base alla classe DynamicLoginConfig. A questi moduli viene quindi fatto riferimento in jboss-app.xml (descrittore di distribuzione JBoss personalizzato) come illustrato qui:

<jboss-app>
<module>
    <service>my-login-module-service.xml</service>
</module>

<module>
    <service>my-ds.xml</service>
</module>
</jboss-app>

Il modo più semplice per creare la definizione del modulo di accesso è utilizzare il supporto per i documenti XML incorporati come valori degli attributi. Tale configurazione (my-login-module-service.xml) sarà simile a questa:

<server>
    <mbean code="org.jboss.security.auth.login.DynamicLoginConfig"
        name="jboss:service=DynamicLoginConfig">
        <attribute name="PolicyConfig" serialDataType="jbxb">
        <jaas:policy xsi:schemaLocation="urn:jboss:security-config:4.1 resource:security-config_4_1.xsd" xmlns:jaas="urn:jboss:security-config:4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <jaas:application-policy name="userinrole">
            <jaas:authentication>
                <jaas:login-module code="org.jboss.security.auth.spi.XMLLoginModule" flag="required">
                <jaas:module-option name="my-policy-123">
                <ur:users xsi:schemaLocation="urn:jboss:user-roles:1.0 resource:user-roles_1_0.xsd" xmlns:ur="urn:jboss:user-roles:1.0">
                    <ur:user name="admin" password="admin123">
                        <ur:role name="MyUserRole"></ur:role>
                        <ur:role name="AdminUser"></ur:role
                    </ur:user>
                </ur:users>
                </jaas:module-option>
                <jaas:module-option name="unauthenticatedIdentity">guest</jaas:module-option>
                </jaas:login-module>
        </jaas:authentication>
        </jaas:application-policy>
        </jaas:policy>
    </attribute>
        <depends optional-attribute-name="LoginConfigService">jboss.security:service=XMLLoginConfig</depends>
        <depends optional-attribute-name="SecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
    </mbean>
</server>

È possibile verificare la corretta distribuzione usando il bean JNDIVIew (java: / jaas / my-policy-123 in questo esempio).

Per la distribuzione, comprese le classi personalizzate, è meglio scegliere la distribuzione dell'archivio SAR insieme al codice personalizzato. In tal caso è possibile separare la definizione MBean e la configurazione del modulo di accesso (META-INF / jboss-service.xml):

<server>
<mbean code="org.jboss.security.auth.login.DynamicLoginConfig" name="jboss:service=DynamicLoginConfig">
    <attribute name="AuthConfig">META-INF/login-config.xml</attribute>
    <depends optional-attribute-name="LoginConfigService">jboss.security:service=XMLLoginConfig</depends>
    <depends optional-attribute-name="SecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
</mbean>
</server>

META-INF / login-config.xml conterrà quindi la configurazione dei criteri.

Sto usando questo approccio su JBoss AS 4.x.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top