2

Wildfly swarm 应用程序的 ManagementFraction 中的 keystoreRelativeTo 选项有问题。

这是代码:

public static void main(String[] args) throws Exception {       
        Swarm swarm = new Swarm(args);
        Archive<JAXRSArchive> archive = createJaxRsArchive();       
        swarm
            .fraction(createManagementFraction())
            .fraction(createUndertowFraction())
            .fraction(createSecurityFraction())
            .start()
            .deploy(archive);
    }


ManagementFraction managementFraction = new ManagementFraction().securityRealm("UndertowRealm", (realm) -> {
    realm.truststoreAuthentication((authn) -> { authn
        //.keystoreRelativeTo("/certs")
        .keystorePath("sometruststore.jks")             
        .keystorePassword("pass");
    });
    realm.sslServerIdentity(new SslServerIdentity<>()
        //.keystoreRelativeTo("/certs")
        .keystorePath("somekeystore.jks")           
        .keystorePassword("pass")
        .alias("x")
        .keyPassword("pass")
            );
});     
return managementFraction;

}

没有 ".keystoreRelativeTo("/certs")" 只要 *.jks 文件位于项目根目录中,它就可以正常工作。使用选项“.keystoreRelativeTo("/certs")" 我希望它会检查 projectRootDir/certs 中的 jks 文件,但事实并非如此。我也尝试过使用绝对路径,例如 C:/certs 但效果不佳。我有错误:

2017-01-03 21:56:26,638 错误 [org.jboss.as.controller.management-operation](控制器引导线程)​​WFLYCTL0013:操作(“添加”)失败 - 地址:([(“子系统”=>“ undertow"), ("server" => "default-server"), ("https-listener" => "https") ]) - 失败描述:{ "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined, “WFLYCTL0288:由于一个或多个间接依赖不可用,一个或多个服务无法启动。” => { "无法启动的服务:" => ["jboss.undertow.listener.https"], "可能是原因的服务:" => ["jboss.server.path./certs/"] } }

2017-01-03 21:56:26,639 错误 [org.jboss.as.controller.management-operation](控制器引导线程)​​WFLYCTL0013:操作(“添加”)失败 - 地址:([(“核心服务”= > "management"), ("security-realm" => "UndertowRealm") ]) - 失败描述:{ "WFLYCTL0412: 未安装的必需服务:" => ["jboss.server.path./certs/" ], "WFLYCTL0180: 缺少/不可用依赖项的服务" => [ "jboss.server.controller.management.security_realm.UndertowRealm.trust-manager is missing [jboss.server.path./certs/]", "jboss.server .controller.management.security_realm.UndertowRealm.key-manager 丢失 [jboss.server.path./certs/]" ] }

我不知道“jboss.server.path”是什么,我认为它是一些 jboss 属性但找不到或设置它。我也尝试过使用 jboss.server.config.dir 参数(之前将其设置为 /certs/ 或 C:/certs/): .keystoreRelativeTo("jboss.server.config.dir")

但错误消息是相同的:(...)“无法启动的服务:”=> [“jboss.undertow.listener.https”],“可能是原因的服务:”=> [“jboss. server.path.\"jboss.server.config.dir\""] (...)

是不是什么bug?任何帮助,将不胜感激。

4

0 回答 0