我寻求一种使用名为 Database 的安全域和模块的应用程序自动设置方法。
请有人告诉我,如何在部署(maven)或设置(运行时)阶段在standalone.xml或domain.xml中添加一个部分以简化初始设置?
我寻求一种使用名为 Database 的安全域和模块的应用程序自动设置方法。
请有人告诉我,如何在部署(maven)或设置(运行时)阶段在standalone.xml或domain.xml中添加一个部分以简化初始设置?
您可以使用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>
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
我希望这会有所帮助。