[英]Creating security domain using wildfly-maven-plugin has no effect
我發現這個它使用/subsystem
中的命令,所以我用不同的子系統命令(我用一個創建安全域),它成功地建立試過,但在standalone.xml沒有效果。
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.1.0.Alpha1</version>
<configuration>
<execute-commands>
<commands>
<command>/subsystem=security/security-domain=secureD:add(cache-type=default)</command>
<command>reload</command>
<command>/subsystem=security/security-domain=secureD/authentication=classic:add(login-modules=[{"code"=>"Database","flag"=>"required","module-options"=>[("dsJndiName"=>"java:jboss/datasources/MyDB"),("principalsQuery"=>"select password from Users where username=?"),("rolesQuery"=>"select role, 'Roles' from Users where username=?"),("hashAlgorithm"=>"SHA-256"),("hashEncoding"=>"hex"),("hashCharset"=>"UTF-8")]}])</command>
<command>reload</command>
</commands>
</execute-commands>
</configuration>
</plugin>
當我在$ ./jboss-cli.sh --connect
手動執行命令時,它會工作並創建域。
我將 eclipse 與以下運行配置一起使用:“目標:清理包 wildfly:deploy”“配置文件:本地”
<project ...
...
<build>
<plugins>
<plugin>
tried pasting code from above once here
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>local</id>
<properties>
...
</properties>
<build>
<plugins>
<plugin>
and once here
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
構建時出現以下錯誤:
...
[INFO]
[INFO] --- wildfly-maven-plugin:1.0.1.Final:undeploy (undeploy) @ Project ---
Jul 03, 2015 3:50:36 PM org.xnio.Xnio <clinit>
INFO: XNIO version 3.2.0.Final
Jul 03, 2015 3:50:36 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.2.0.Final
Jul 03, 2015 3:50:36 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 4.0.0.Final
WARN: can't find jboss-cli.xml. Using default configuration values.
Jul 03, 2015 3:50:36 PM org.jboss.as.cli.impl.CommandContextImpl printLine
INFO: {"outcome" => "success"}
{"outcome" => "success"}
Jul 03, 2015 3:50:36 PM org.jboss.as.cli.impl.CommandContextImpl printLine
INFO: {
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}
{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.316 s
[INFO] Finished at: 2015-07-03T15:50:36+01:00
[INFO] Final Memory: 12M/165M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:1.0.1.Final:undeploy (undeploy) on project Project: Could not execute goal undeploy on /home/username/workspace/Project/target/Project-0.0.1-SNAPSHOT.war. Reason: Command execution failed for command 'reload'. Unsupported ModelControllerClient implementation org.wildfly.plugin.cli.Commands$NonClosingModelControllerClient -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
如果我刪除reload
命令,我會得到:
...
WARN: can't find jboss-cli.xml. Using default configuration values.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.825 s
[INFO] Finished at: 2015-07-03T15:45:23+01:00
[INFO] Final Memory: 22M/214M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:1.0.1.Final:deploy-artifact (deploy_jdbc_driver) on project Project: Could not execute goal deploy-artifact on /home/username/.m2/repository/mysql/mysql-connector-java/5.1.35/mysql-connector-java-5.1.35.jar. Reason: Command execution failed for command '/subsystem=security/security-domain=secureD:add(cache-type=default)'. {
[ERROR] "outcome" => "failed",
[ERROR] "failure-description" => "JBAS014803: Duplicate resource [
[ERROR] (\"subsystem\" => \"security\"),
[ERROR] (\"security-domain\" => \"secureD\")
[ERROR] ]",
[ERROR] "rolled-back" => true,
[ERROR] "response-headers" => {"process-state" => "reload-required"}
[ERROR] }
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
您需要添加wildfly:execute-commands
目標或更改配置以使用<before-deployment/>
。 后者可能是更好的解決方案,因為您必須使用執行來確保在部署之前執行命令。 我也只會在最后使用reload
。
<configuration>
<before-deployment>
<commands>
<command>/subsystem=security/security-domain=secureD:add(cache-type=default)</command>
<command>/subsystem=security/security-domain=secureD/authentication=classic:add(login-modules=[{"code"=>"Database","flag"=>"required","module-options"=>[("dsJndiName"=>"java:jboss/datasources/MyDB"),("principalsQuery"=>"select password from Users where username=?"),("rolesQuery"=>"select role, 'Roles' from Users where username=?"),("hashAlgorithm"=>"SHA-256"),("hashEncoding"=>"hex"),("hashCharset"=>"UTF-8")]}])</command>
<command>reload</command>
</commands>
</before-deployment>
</configuration>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.