在WildFly 8.x中自动部署安全域

Ale*_*nko 2 deployment securitydomain java-ee wildfly

我寻求一种使用安全域和模块名为Database的应用程序自动设置方法.

请有人告诉我,如何在部署(maven)或设置(运行时)阶段在standalone.xml或domain.xml中添加一个部分,以便初始设置简化?

Fed*_*rra 5

您可以使用WildFly Maven插件(wildfly-maven-plugin).将wildfly-maven-plugin用于部署,重新部署,取消部署或运行应用程序.您还可以部署或取消部署工件,例如JDBC驱动程序,以及添加或删除资源.还可以执行CLI命令.

例如.(从CLI脚本执行命令)

<project>
    ...
    <build>
        ...
        <plugins>
            ...
            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
                <version>1.0.2.Final</version>
                <configuration>
                    <execute-commands>
                        <scripts>
                            <script>config.cli</script>
                        </scripts>
                    </execute-commands>
                </configuration>
            </plugin>
            ...
        </plugins>
        ...
    </build>
...
</project>
Run Code Online (Sandbox Code Playgroud)

config.cli 添加安全域:

batch
# Configure the security domain
/subsystem=security/security-domain=my-security/:add(cache-type=default)
/subsystem=security/security-domain=my-security/authentication=classic:add(login-modules=[{"code"=>"Database", "flag"=>"required", "module-options"=>[("dsJndiName"=>"java:jboss/datasources/myDS"),("principalsQuery"=>"SELECT PASSWORD FROM USERS WHERE USERNAME = ?"), ("rolesQuery"=>"SELECT R.NAME, 'Roles' FROM USERS_ROLES UR INNER JOIN ROLES R ON R.ID = UR.ROLE_ID INNER JOIN USERS U ON U.ID = UR.USER_ID WHERE U.USERNAME = ?")]}])
# Run the batch commands
run-batch
# Reload the server configuration
:reload
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.