首页 > 解决方案 > Corda:试图将 RPC 权限放在外部数据库上

问题描述

我正在尝试将 RPC 权限以及用户及其密码放在外部数据库中。我遵循了 Corda v. 3.3 的文档(https://docs.corda.net/clientrpc.html#rpc-security-management)。

它说我需要为有问题的节点创建一个“安全”字段并填写所有必要的信息。我已经完成了,但是一旦我尝试部署节点,它就会给我这个错误:

“无法为 net.corda.plugins.Node 类型的对象设置未知属性‘安全’。”

该节点的信息在 build.gradle 文档中如下所示:

node {
    name "O=myOrganisation,L=Lisbon,C=PT"
    p2pPort 10024
    rpcSettings {
        address("localhost:10025")
        adminAddress("localhost:10026")
    }
    security = {
        authService = {
            dataSource = {
                type = "DB"
                passwordEncryption = "SHIRO_1_CRYPT"
                connection = {
                    jdbcUrl = "localhost:3306"
                    username = "*******"
                    password = "*******"
                    driverClassName = "com.mysql.jdbc.Driver"
                }
            }
        }
    }

    cordapps = [
            "$project.group:cordapp:$project.version"
    ]
}

标签: corda

解决方案


您混淆了两种语法:

  • 用于在任务中配置node块的语法,Cordform例如deployNodes
  • 直接通过以下方式配置节点的语法node.conf

安全设置适用于 inside node.conf。您必须先创建节点,然后在创建节点后node.conf使用这些设置修改节点。

Corda 4 将引入一个在块extraConfig内使用的选项,如此所述。Cordfrom node


推荐阅读