2011-09-28 32 views
0

我試圖創建一個RPM包裝的Ear文件,該文件應該與其他RPM-packagesd Ear文件一起安裝在JBoss容器中。 (我可能在JBoss中創建了一個單獨的容器,但是這對於一個耳朵來說是一個很大的開銷。)除了一個問題之外,這工作正常。JBoss的分離登錄配置?

我的問題是,這個Ear文件公開了使用他們自己的認證策略(login-config.xml policy/application-policy/authentication/login-module)的Web服務。現在多個RPM想通過這個文件提供認證信息,我們與RPM spec規則相沖突,即任何文件都不能被多個RPM軟件包所擁有(無論如何,無論哪個RPM最後都會破壞以前的文件)。

是否有任何方式可以在單獨的文件中或以某種方式將application-policy/authentication塊聲明在login-config.xml之外?例如,是否可以聲明引用單獨的登錄XML定義的額外安全mbeans(在單獨的文件中)?

這是JBoss v4.2,但如果它解決了這個問題,我願意考慮。

更新:

盧卡斯規則。下面是工作配置!

<?xml version='1.0'?> 

<server> 
<mbean code="org.jboss.security.auth.login.DynamicLoginConfig" 
name="jboss.security.tests:service=LoginConfig"> 

<depends optional-attribute-name="SecurityManagerService"> 
    jboss.security:service=JaasSecurityManager 
</depends> 
<depends optional-attribute-name="LoginConfigService"> 
    jboss.security:service=XMLLoginConfig 
</depends> 

<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="mySecurityDomain"> 
     <jaas:authentication> 
     <jaas:login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required"> 
      <jaas:module-option name="unauthenticatedIdentity">noone</jaas:module-option> 
      <jaas:module-option name="dsJndiName">java:/myDataSource</jaas:module-option> 
      <jaas:module-option name="principalsQuery">SELECT password FROM WebServiceUser WHERE userName=?</jaas:module-option> 
      <jaas:module-option name="rolesQuery">SELECT role, 'Roles' FROM WebServiceUser WHERE userName=?</jaas:module-option> 
     </jaas:login-module> 
     </jaas:authentication> 
    </jaas:application-policy> 
    </jaas:policy> 

</attribute> 
</mbean> 
</server> 

回答