nl::Weave::WeaveServerDelegateBase

#include <src/lib/core/WeaveServerBase.h>

用于实现 Weave 服务器委托对象的通用基类。

摘要

继承

受保护的类型

@69{
  kAccessControlResult_NotDetermined = 0,
  kAccessControlResult_Accepted = 1,
  kAccessControlResult_Rejected = 2,
  kAccessControlResult_Rejected_RespSent = 3,
  kAccessControlResult_Rejected_Silent = 4
}
枚举
AccessControlResult typedef
uint8_t

受保护的函数

EnforceAccessControl(ExchangeContext *ec, uint32_t msgProfileId, uint8_t msgType, const WeaveMessageInfo *msgInfo, AccessControlResult & result)
virtual void
虚拟方法,用于确定传入服务器请求消息的消息级访问权限控制政策。
WeaveServerDelegateBase(void)

受保护的类型

@69

 @69

AccessControlResult

uint8_t AccessControlResult

受保护的函数

强制执行访问权限控制

virtual void EnforceAccessControl(
  ExchangeContext *ec,
  uint32_t msgProfileId,
  uint8_t msgType,
  const WeaveMessageInfo *msgInfo,
  AccessControlResult & result
)

虚拟方法,用于确定传入服务器请求消息的消息级访问权限控制政策。

Weave 服务器基础架构会调用此方法,以确定是应正常接受和处理传入请求消息,还是拒绝传入请求消息。与 Weave 服务器实现相关联的委托类必须替换此方法,以针对其协议实现适当的访问控制政策。应用可能会进一步覆盖此方法,以支持标准服务器实现所提供政策之外的自定义政策。

根据访问控制政策评估结果,此方法的实现预计会返回结果值“已接受”或“已拒绝”。如果返回“被拒绝”的结果,则系统会向包含“常见/拒绝访问”状态的请求者发送 StatusReport。或者,方法实现可以选择发送自己的响应,这些响应可以是 StatusReport 或任何其他类型的消息。在这种情况下,该方法应返回 Rejected_RespSent 的结果,表示已发送响应。最后,实现可以返回 Rejected_Silent,以指明请求被拒绝,而无需向请求者发送响应。

在调用请求中,替换 EnforceAccessControl() 方法的类需要针对其直接父类调用类似名称的方法,无论是 WeaveServerDelegateBase 类还是派生自此类的类。替换方法应首先根据结果确定访问控制政策来更新结果值,然后调用其基类来做出决定。

详细信息
参数
[in] ec
收到邮件的 ExchangeContext
[in] msgProfileId
收到的消息的个人资料 ID。
[in] msgType
收到的消息的消息类型。
[in] msgInfo
WeaveMessageInfo 结构,包含收到的消息的相关信息。
[in,out] result
枚举的值,描述所接收消息的访问控制政策评估结果。进入该方法时,该值表示评估过程中当前点的暂定结果。返回后,结果应该代表对邮件的访问控制政策的最终评估。

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)