2013-06-28 3 views
9

JBoss 7의 보안 도메인을 사용하여 주석별로 EJB 보안을 사용하고 있습니다. 예 :JBoss 7.1.1의 standalone.xml 외부에 보안 도메인 선언

@RolesAllowed({"User", "Admin"}) 

현재 보안 도메인을 standalone.xml에 선언합니다. 이것은 작은 일에 적합하지만 동일한 JBoss Server에서 다른 보안 프로젝트를 사용하고 싶습니다. 따라서 standalone.xml 외부에 보안 도메인을 선언하는 방법을 찾고 있습니다. 나는 전쟁 내부에 배치 설명자를 사용하는 것을 생각했다.

this documentation에 따르면 이것이 가능해야합니다. 그러나 이것은 JBoss 5를위한 것이며 JBoss 7.1.1에서 작동하지 않는 것 같습니다. 파서 오류로 인해 JBoss를 시작하면 예외가 발생합니다. 나는 또한 this question을 보았습니다. 그러나 이것이 내가 필요한 것인지 확실하지 않습니다. standalone.xml 외부의 로그인 모듈을 사용하여 새 보안 도메인을 선언해야합니다.

보안 도메인 선언 및 구성을 war-Deployment에 저장하는 솔루션이 있습니까?

감사

답변

3

나는이 간단한 방법 (related JIRA issue)의 순간에 가능하다고 생각하지 않습니다. 그러나 해결 방법으로 jboss-as-maven-plugin를 사용할 수 있습니다

<profiles> 
     <profile> 
      <id>deploy-security-domain</id> 
      <activation> 
       <activeByDefault>false</activeByDefault> 
      </activation> 
      <build> 
       <pluginManagement> 
        <plugins> 
         <plugin> 
          <groupId>org.jboss.as.plugins</groupId> 
          <artifactId>jboss-as-maven-plugin</artifactId> 
          <version>7.4.Final</version> 
          <executions> 
           <execution> 
           <id>add-security-domain</id> 
           <phase>install</phase> 
           <goals> 
            <!-- This should work in both "standalone" and "domain" mode --> 
            <goal>execute-commands</goal> 
           </goals> 
           <configuration> 
            <execute-commands> 
            <batch>true</batch> 
            <commands> 
             <command>/subsystem=security/security-domain=MyDomain:add(cache-type=default)</command> 
             <command>/subsystem=security/security-domain=MyDomain/authentication=classic:add(login-modules=[{"code"=>"Database","flag"=>"required","module-options"=>[("dsJndiName"=>"java:jboss/datasources/UserDB"),("principalsQuery"=>"select password from users where user_name=?"),("rolesQuery"=>"select role, 'Roles' from user_roles where user_name=?"),("hashAlgorithm"=>"SHA-256"),("hashEncoding"=>"base64")]}]</command> 
            </commands> 
            </execute-commands> 
           </configuration> 
           </execution> 
          </executions> 
         </plugin> 
        </plugins> 
       </pluginManagement> 
      </build> 
     </profile> 
</profiles> 

실행 :

mvn install -P deploy-security-domain 

는 또 다른 옵션이 더 많거나 적은 같은 일을하는 CLI 스크립트가 될 것입니다. 예를 들어 this 빠른 시작 프로젝트를 확인하십시오.