如何设置 milo 服务器中方法或文件夹的访问级别

问题描述 投票:0回答:1

我是 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;
        }
    }));

但是我没有设法对文件夹和方法节点执行相同的操作。
类似的代码似乎没有做任何事情。

如何限制某些文件夹对某些用户的可见性?
如何将某些方法的使用限制为某些用户?

java opc-ua opc milo
1个回答
0
投票

通过拦截 UserExecutable 属性并根据 Session/Identity 返回 true/false 来限制方法的使用。

节点的可见性有点棘手,因为 0.6.x 版本中没有对它的一流支持。您可以在 AddressSpace 中实现

browse
getReferences
方法,以便它们查看会话/身份并决定要做什么,仅此而已。

dev/1.0
分支添加了对角色和权限的支持,它确实以更一流的方式支持这个概念,如果您已经使用适当的角色配置了服务器,并且使用适当的 RolePermissions 和 UserRolePermissions 属性配置了节点,则服务器的浏览实现尊重这些。

如果您还有其他问题,最好在 GH 上开始新的讨论,而不是在这里继续对话。

© www.soinside.com 2019 - 2024. All rights reserved.