首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在standalone.xml 7.1.1上声明JBoss之外的安全域

在standalone.xml 7.1.1上声明JBoss之外的安全域
EN

Stack Overflow用户
提问于 2013-06-28 12:14:45
回答 1查看 1.2K关注 0票数 9

我正在使用JBoss 7上的安全域来实现注释。例如。

代码语言:javascript
运行
复制
@RolesAllowed({"User", "Admin"})

目前,我在standalone.xml中声明安全域。这是对小事情的认可,但是我想在同一个JBoss服务器上用不同的项目来使用这个安全性的孩子。因此,我正在寻找一种在standalone.xml之外声明安全域的方法。我想过在战争部署中使用部署描述符。

根据这份文件的说法,这应该是可能的。但这是针对JBoss 5的,而且似乎无法使用JBoss 7.1.1。启动JBoss会因解析器错误引发异常。我也见过这个问题,但我不确定这是否是我需要的东西。我需要在standalone.xml之外的某个地方用登录模块声明新的安全域。

是否有简单的解决方案来存储战争部署中的安全域声明和配置?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-08-07 19:12:00

我不认为这在目前是不可能的一个简单的方式(相关的JIRA问题)。但是,您可以使用jboss maven-plugin作为解决办法:

代码语言:javascript
运行
复制
<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>

处决:

代码语言:javascript
运行
复制
mvn install -P deploy-security-domain

另一个选项是一个CLI脚本,它做的事情或多或少是一样的。查看快速启动项目以获得一个示例。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17364524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档