通过build.gradle

时间:2019-03-07 09:22:32

标签: corda

通过在Corda 3.2 Enterprise中扩展node.conf的rpcSettings,我已经成功地将节点配置为使用Ssl Rpc:

rpcSettings {
  address="localhost:10006"
  adminAddress="localhost:10046"

  useSsl=true
  ssl {
    keyStorePath="/myhome/certificates/rpcsslkeystore.jks"
    keyStorePassword="xyz"
  }
}

现在,我正在尝试将Ssl选项添加到build.gradle文件中的节点配置中:

import net.corda.cordform.SslOptions

task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
  directory "./build/nodes"
  node {
    name "O=PartyA,L=London,C=GB"
    p2pPort 10005
    rpcSettings {
      address("localhost:10006")
      adminAddress("localhost:10046")

      def mySsl = new SslOptions()       
      mySsl.sslKeystore("/myhome/certificates/rpcsslkeystore.jks")
      mySsl.keyStorePassword("xyz")

      useSsl(true)
      ssl(mySsl)
    ...
}}

问题在于生成的node.conf现在包含属性“ sslKeyStore”而不是预期的“ keyStorePath”,因此无法由节点加载:

rpcSettings {
  address="localhost:10006"
  adminAddress="localhost:10046"
  ssl {
    keyStorePassword=xyz
    sslKeystore="/myhome/certificates/rpcsslkeystore.jks"
  }
  useSsl=true
}

不过,类net.corda.cordform.SslOptions没有提供名为keyStorePath的方法。

有人知道如何解决吗?

1 个答案:

答案 0 :(得分:0)

此解决方案对我有用:

task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
  directory "./build/nodes"
  node {
    name "O=PartyA,L=London,C=GB"
    p2pPort 10005
    rpcSettings {
      address("localhost:10006")
      adminAddress("localhost:10046")
    }
    extraConfig = [
        'rpcSettings.useSsl' : "true",
        'rpcSettings.ssl.keyStorePassword' : "xyz",
        'rpcSettings.ssl.keyStorePath' : "/myhome/certificates/rpcsslkeystore.jks"
    ]
    ...
}