다른 RPM-packagesd Ear 파일과 함께 JBoss 컨테이너에 설치할 수있는 RPM 패키지 Ear 파일을 만들려고합니다. (아마도 JBoss 내에 별도의 컨테이너를 만들 수 있지만, 하나의 Ear에 대해서는 오버 헤드가 많이 듭니다.) 한 가지 문제를 제외하고는 제대로 작동합니다.JBoss에 대한 로그인 구성이 분리 되었습니까?
이 ear 파일은 자체 인증 정책 (login-config.xml policy/application-policy/authentication/login-module)을 사용하는 웹 서비스를 노출합니다. 여러 RPM이이 파일을 통해 인증 정보를 제공하기 때문에 여러 RPM 패키지에서 파일을 소유 할 수 없다는 RPM 사양 규칙과 충돌합니다 (어쨌든 마지막으로 RPM이 빠져 나가는 경우).
application-policy/authentication 블록을 login-config.xml 외부에 배치하는 방식으로 별도의 파일로 선언 할 수있는 방법이 있습니까? 예를 들어 별도의 로그인 XML 정의를 참조하는 추가 보안 MBean을 별도의 파일로 선언 할 수 있습니까?
이것은 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>