4

データソース(-ds.xml)定義とlogin-config.xmlをjbossのサービスアーカイブとしてバンドルした経験はありますか?私はこれとしばらくの間戦ってきましたが無駄になりました。.sarをどのようにレイアウトするかについてのいくつかの指針を探しています。.sarを最終的に.earに配置したいと思います。どんなポインタでも大歓迎です!

4

1 に答える 1

4

これは比較的簡単な作業です。

EAR ファイルには次のレイアウトが必要です。

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

my-ds.xml には、通常どおりデータソース定義が含まれています。my-login-module-service.xml は、DynamicLoginConfig クラスに基づいて MBean を定義します。これらのモジュールは、次に示すように jboss-app.xml (カスタム JBoss デプロイメント記述子) 内で参照されます。

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

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

ログインモジュール定義を作成する最も簡単な方法は、組み込み XML ドキュメントのサポートを属性値として使用することです。このような構成 (my-login-module-service.xml) は次のようになります。

<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>

JNDIVIew Bean (この例では java:/jaas/my-policy-123) を使用して、デプロイが成功したことを確認できます。

カスタム クラスを含む展開の場合は、カスタム コードと共に SAR アーカイブ展開を選択することをお勧めします。このような場合、MBean 定義とログイン モジュール構成 (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 には、ポリシー構成が含まれます。

JBoss AS 4.x でこのアプローチを使用しています。

于 2009-04-21T13:34:02.123 に答える