You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Corda自带Webserver启动时抛出PermissionException权限异常求助

解决Corda Webserver启动时的PermissionException问题

这个错误的核心原因很清晰:你的Webserver使用的RPC用户没有被授权调用nodeInfo这个RPC方法。Corda的RPC系统有严格的权限管控机制,必须显式为用户分配对应方法的调用权限才能正常交互。下面是具体的解决步骤:

  • 第一步:配置RPC用户的权限
    不管你是直接编辑节点的node.conf文件,还是通过Gradle构建脚本配置节点,都要确保目标用户拥有InvokeRpc.nodeInfo权限:

    • 如果直接修改node.conf,找到rpcUsers段调整为如下格式:
      rpcUsers=[
        {
          username=webserver_user
          password=webserver_pass
          permissions=[
            "InvokeRpc.nodeInfo",
            // 可按需添加Webserver需要的其他RPC权限,比如InvokeRpc.currentNodeTime等
          ]
        }
      ]
      
    • 如果用Gradle构建节点(推荐方式),在build.gradle的node配置块里更新rpcUsers:
      node {
          name "O=YourParty,L=YourCity,C=YourCountry"
          // 其他节点配置(端口、P2P地址等)...
          rpcUsers = [
              [
                  username: "webserver_user",
                  password: "webserver_pass",
                  permissions: ["InvokeRpc.nodeInfo", "InvokeRpc.currentNodeTime"]
              ]
          ]
      }
      
  • 第二步:确保Webserver使用匹配的凭证
    检查Webserver的配置文件(比如application.properties),里面的RPC用户名和密码必须和你刚才在节点配置里设置的完全一致。示例配置:

    rpc.username=webserver_user
    rpc.password=webserver_pass
    rpc.address=localhost:你的节点RPC端口
    
  • 第三步:重新构建并启动节点
    配置修改完成后,先运行Gradle命令重新生成节点:

    ./gradlew deployNodes
    

    之后再执行runnodes.bat启动节点和Webserver,新的权限配置就会生效了。

小提示:开发环境下为了快速调试,你可以暂时给用户分配ALL权限(permissions=["ALL"]),但生产环境一定要遵循最小权限原则,只授予Webserver实际需要的RPC方法权限,避免安全风险。

内容的提问来源于stack exchange,提问作者Cais Manai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:43:37