我是 opc ua 的新手,我首先使用带有 java 的 milo 服务器示例。
我现在了解如何使用此代码为变量节点设置访问级别限制:
node.getFilterChain().addLast(new RestrictedAccessFilter(identity -> {
if ("admin".equals(identity)) {
return AccessLevel.READ_WRITE;
} else if ("guest".equals(identity)) {
return AccessLevel.READ_ONLY;
} else {
return AccessLevel.NONE;
}
}));
但是我没有设法对文件夹和方法节点执行相同的操作。
类似的代码似乎没有做任何事情。
如何限制某些文件夹对某些用户的可见性?
如何将某些方法的使用限制为某些用户?
通过拦截 UserExecutable 属性并根据 Session/Identity 返回 true/false 来限制方法的使用。
节点的可见性有点棘手,因为 0.6.x 版本中没有对它的一流支持。您可以在 AddressSpace 中实现
browse
和 getReferences
方法,以便它们查看会话/身份并决定要做什么,仅此而已。
dev/1.0
分支添加了对角色和权限的支持,它确实以更一流的方式支持这个概念,如果您已经使用适当的角色配置了服务器,并且使用适当的 RolePermissions 和 UserRolePermissions 属性配置了节点,则服务器的浏览实现尊重这些。
如果您还有其他问题,最好在 GH 上开始新的讨论,而不是在这里继续对话。