如何允许 RESTful 应用程序在 Caché 中使用系统 类?
How to allow RESTful application to use system classes in Caché?
当尝试将任何 RESTful 应用程序的 "Dispatch Class" 设置为 class 保留在系统包中时,例如“%WebTerminal.Router”,对此的任何请求Web 应用程序响应“403 禁止访问”。
但是,当我将包重命名为 "WebTerminal.Router"(没有“%”符号)并将调度 class 设置为此 class 时一切正常。
有什么方法可以让 "allow" RESTful 应用程序使用系统 classes 吗?
在 CSP 上下文中允许 % classes 的 3 种方法:
a) 允许所有 % classes:
Set ^SYS("Security", "CSP", "AllowPercent")=1
b) 允许一个应用一个 class:
Set ^SYS("Security", "CSP", "AllowClass", application, class)=1
c) 为所有应用允许一个 class:
Set ^SYS("Security", "CSP", "AllowClass", 0, class)=1
任何命令都必须在 %SYS 命名空间中执行。
这不是 RESTfull 问题,它适用于所有 %-类。您可以在文档 here 中阅读它。要允许它就这样做。
zn "%SYS"
Set ^SYS("Security", "CSP", "AllowPrefix", 0, "%WebTerminal") = 1
当尝试将任何 RESTful 应用程序的 "Dispatch Class" 设置为 class 保留在系统包中时,例如“%WebTerminal.Router”,对此的任何请求Web 应用程序响应“403 禁止访问”。
但是,当我将包重命名为 "WebTerminal.Router"(没有“%”符号)并将调度 class 设置为此 class 时一切正常。
有什么方法可以让 "allow" RESTful 应用程序使用系统 classes 吗?
在 CSP 上下文中允许 % classes 的 3 种方法:
a) 允许所有 % classes:
Set ^SYS("Security", "CSP", "AllowPercent")=1
b) 允许一个应用一个 class:
Set ^SYS("Security", "CSP", "AllowClass", application, class)=1
c) 为所有应用允许一个 class:
Set ^SYS("Security", "CSP", "AllowClass", 0, class)=1
任何命令都必须在 %SYS 命名空间中执行。
这不是 RESTfull 问题,它适用于所有 %-类。您可以在文档 here 中阅读它。要允许它就这样做。
zn "%SYS"
Set ^SYS("Security", "CSP", "AllowPrefix", 0, "%WebTerminal") = 1