0

我有USER_TOKEN_POLICY_USERNAME启用并用于UsernameIdentityValidator设置用户名和密码的 milo opcua 服务器。

从 milo 客户端,我习惯于UsernameProvider设置setIdentityProvider.

当我运行此设置时,一切正常。

但是当我重新启动 opcua 服务器时,milo 客户端不会重新连接。我遇到了以下异常:

[milo-shared-thread-pool-2] 跳过证书验证:C=DE、ST=""、L=Locality、OU=OrganizationUnit、O=Organization、CN=AggrServer@7aaf488fd8d6

29.01.2021 09:25:48.282+0000 INFO [moserv.KafkaConsumer(1bc715b8)] [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] 成功发送记录到主题:NSCH_TEST_Data。29.01.2021 09:26:55.681+0000 WARN [oemopcua.sdk.client.SessionFsm] [milo-shared-thread-pool-3] [2] Keep Alive failureCount=4 超过 failuresAllowed=3 29.01.2021 09:26: 55.681+0000 WARN [oemopcua.sdk.client.SessionFsm] [milo-shared-thread-pool-3] [2] Keep Alive failureCount=5 超过 failuresAllowed=3 29.01.2021 09:26:55.682+0000 信息 [moMiloConnectorRemote( 7b76b59d)] [milo-shared-thread-pool-6] opc.tcp://192.168.56.101:4840: onSessionInactive: OpcUaSession{sessionId=NodeId{ns=1, id=Session:fc6fdb4f-0e8a-441d-ba25- 45d067d434e7}, sessionName=OpcUa@0b8bc292754c} 29.01.2021 09:26:55.682+0000 信息 [mo

新日志

02.02.2021 18:32:55.541+0000 WARN [opcua.MiloSubscriber(3c5d9688)] [DefaultDispatcher-worker-3] [Subscriber-opc.tcp://192.168.56.101:4840: deleteSubscription(1) of SyncExecutor-Subscriber( 3c5d9688)-opc.tcp://192.168.56.101:4840] 返回 null,因为 UaException:status=Bad_ConnectionRejected,message=io.netty.channel.AbstractChannel$AnnotatedConnectException:连接被拒绝:/192.168.56.101:4840 02.02.2021 18:32:55.542+0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] idNameTypeSet.nodes.size 02.02.2021 18:32:55.542+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher- worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840:退出模型检查,因为外部停止 02.02.2021 18:33:59.790+0000 INFO [moMiloConnectorRemote(74c9951c)] [milo-shared-thread-pool -3] opc.tcp://192。168.56.101:4840: onSessionActive: OpcUaSession{sessionId=NodeId{ns=1, id=Session:d27e7db7-4401-4f08-8c17-7bfaf9075fe4}, sessionName=OpcUa@154c9f72aa09} 02.02.2021 18:33:59.790+0000 [moMiloConnectorRemote(74c9951c)] [milo-shared-thread-pool-3] opc.tcp://192.168.56.101:4840: 通知 Observer-opc.tcp://192.168.56.101:4840 关于 ConnectionEvent(state=Connected, prevState=Connecting, label=opc.tcp://192.168.56.101:4840) 02.02.2021 18:33:59.790+0000 INFO [m.opcua.OpcUaObserverImpl(ff09afd)] [milo-shared-thread-pool-3] Observer-opc.tcp://192.168.56.101:4840:处理事件 ConnectionEvent(state=Connected, prevState=Connecting, label=opc.tcp://192.168.56.101:4840) 02.02.2021 18:33:59.790+ 0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [milo-shared-thread-pool-3] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840:从 02.02 开始。2021 18:33:59.790+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [milo-shared-thread-pool-3] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: modelReadyChecking=MinMaxInterval(min=10, max=30, timeUnit=SECONDS, current=10, step=3), modelChangeChecking=MinMaxInterval(min=60, max=1800, timeUnit=SECONDS, current=60, step=180), modelReadyMinNodesCount=0 02.02.2021 18: 33:59.804+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount=0,modelChangeCheckingRunning=false) 02.02.2021 18:33:59.804+0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 在 nodesCount 方法 02.02.2021 18:33:59.817+0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker- 2] 节点数=3605790+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [milo-shared-thread-pool-3] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: modelReadyChecking=MinMaxInterval(min=10, max=30, timeUnit =SECONDS, current=10, step=3), modelChangeChecking=MinMaxInterval(min=60, max=1800, timeUnit=SECONDS, current=60, step=180), modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount=0,modelChangeCheckingRunning=false) 02.02.2021 18:33:59.804 +0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 在 nodesCount 方法 02.02.2021 18:33:59.817+0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] nodesCount=3605790+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [milo-shared-thread-pool-3] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: modelReadyChecking=MinMaxInterval(min=10, max=30, timeUnit =SECONDS, current=10, step=3), modelChangeChecking=MinMaxInterval(min=60, max=1800, timeUnit=SECONDS, current=60, step=180), modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount=0,modelChangeCheckingRunning=false) 02.02.2021 18:33:59.804 +0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 在 nodesCount 方法 02.02.2021 18:33:59.817+0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] nodesCount=3605OpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [milo-shared-thread-pool-3] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: modelReadyChecking=MinMaxInterval(min=10, max=30, timeUnit=SECONDS, current= 10, step=3), modelChangeChecking=MinMaxInterval(min=60, max=1800, timeUnit=SECONDS, current=60, step=180), modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000 INFO [moOpcUaObserverImpl$ModelReadyChangeChecker (3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount=0,modelChangeCheckingRunning=false) 02.02.2021 18:33:59.804+0000 信息 [opcua .MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 在nodesCount 方法中 02.02.2021 18:33:59.817+0000 INFO [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] nodesCount=3605OpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [milo-shared-thread-pool-3] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: modelReadyChecking=MinMaxInterval(min=10, max=30, timeUnit=SECONDS, current= 10, step=3), modelChangeChecking=MinMaxInterval(min=60, max=1800, timeUnit=SECONDS, current=60, step=180), modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000 INFO [moOpcUaObserverImpl$ModelReadyChangeChecker (3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount=0,modelChangeCheckingRunning=false) 02.02.2021 18:33:59.804+0000 信息 [opcua .MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 在nodesCount 方法中 02.02.2021 18:33:59.817+0000 INFO [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] nodesCount=3605MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 节点数=3605MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 节点数=3605MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 节点数=3605MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] 节点数=3605modelReadyChecking=MinMaxInterval(min=10, max=30, timeUnit=SECONDS, current=10, step=3), modelChangeChecking=MinMaxInterval(min=60, max=1800, timeUnit=SECONDS, current=60, step=180), modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount= ( 1d141b2d)] [DefaultDispatcher-worker-2] 节点数=3605modelReadyChecking=MinMaxInterval(min=10, max=30, timeUnit=SECONDS, current=10, step=3), modelChangeChecking=MinMaxInterval(min=60, max=1800, timeUnit=SECONDS, current=60, step=180), modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount= ( 1d141b2d)] [DefaultDispatcher-worker-2] 节点数=3605modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount= ( 1d141b2d)] [DefaultDispatcher-worker-2] 节点数=3605modelReadyMinNodesCount=0 02.02.2021 18:33:59.804+0000 信息 [moOpcUaObserverImpl$ModelReadyChangeChecker(3c8bf12c)] [DefaultDispatcher-worker-2] OpcUaObserverImpl-opc.tcp://192.168.56.101:4840: -> check(modelReadyMinNodesCount= ( 1d141b2d)] [DefaultDispatcher-worker-2] 节点数=360502.2021 18:33:59.817+0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] nodesCount=360502.2021 18:33:59.817+0000 信息 [opcua.MiloBrowser(1d141b2d)] [DefaultDispatcher-worker-2] nodesCount=3605

4

2 回答 2

0

我认为从您的新日志中提取的有意义的异常是:

io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /192.168.56.101:4840

简单的网络错误。服务器不存在,没有运行,防火墙挡住了,等等......

您现在在客户端代码中没有做错任何事情。

于 2021-02-02T15:57:05.077 回答
0

似乎客户端/服务器证书验证存在问题。

UA PKI、X509等复杂难懂,更难正确配置,几句话无法回答。如果您刚开始使用 OPC UA,请尝试跳过服务器策略和用户标识,直到您了解为止。

服务器和客户端将需要证书才能解密或加密用户身份验证。

但是做一些检查:

  • 检查客户端是否在其受信任的路径中具有服务器证书。
  • 检查服务器证书是否已更改。服务器不应在每次服务器启动时重新生成其自签名证书,而只能在安装设置或管理时重新生成。

解决方法:

于 2021-01-30T08:26:34.183 回答