【已评审】新增前后端属性用于标志WEB是否可以使用HTTP DELETE操作

背景

为了满足客户安全诉求,WEB REST接口需要禁止Delete操作。同时为了保证兼容性,针对之前已提供的DELETE操作也需要进行兼容。

整体方案

提供服务器出厂定制项,生产阶段定制是否支持WEB使用HTTP DELETE方法标志位,后端和前端接口通过该标志位来判断使用DELETE或POST实施删除操作。

评审点

1、/UI/Rest/GenericInfo新增AllowHttpDelete属性,用于WEBUI判断是否使用HTTP DELETE方法实施删除操作;
2、新增资源协作接口和属性,表示是否使用HTTP DELETE方法实施删除操作;
3、新增服务器出厂定制项、导入导出项,表示是否使用HTTP DELETE方法实施删除操作;

详细描述

评审点1:/UI/Rest/GenericInfo接口新增AllowHttpDelete属性

资源URI :/UI/Rest/GenericInfo
属性列表

属性名 类型 示例/默认值/取值约束 readonly 易变属性 实现PATCH 操作权限 描述
AllowHttpDelete boolean true true ReadOnly 用于指示前端是否支持HTTP DELETE操作,若为false,则需要使用HTTP POST方法进行删除操作

说明:如果无法获取后端资源协作接口AllowHttpDelete 属性(社区新版本配套旧版本SDK场景),则/UI/Rest/GenericInfo中的AllowHttpDelete 属性值默认为true

响应示例

{
    ....
    "AllowHttpDelete": true
}

评审点2: 新增资源协作接口bmc.kepler.Managers.WebService

接口描述 :该接口用于控制WEB服务全局策略,当前仅新增AllowHttpDelete 属性,用于控制前后端是否允许使用HTTP DELETE方法
路径:/bmc/kepler/Managers/1/WebService(已有)
接口:bmc.kepler.Managers.WebService(新增)
属性评审点

属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 易变属性
AllowHttpDelete b false true 是否允许使用HTTP DELETE方法 Read: ReadOnly
Write: BasicSetting
定制项 掉电持久化 false

说明:需要在接口层进行控制:
1)AllowHttpDelete为false时无法访问相关业务的DELETE方式的删除接口。
2)AllowHttpDelete为true时DELETE和POST方式均可进行删除

评审点3:新增导入导出项、服务器出厂定制项

1)新增AllowHttpDelete导入导出项,具体如下:

配置项名称 配置项类别 配置项 归属组件 取值说明 默认值 导入导出类型(ExportOnly,ImportAndExport) 导出后是否可直接导入(无修改)
允许HTTP DELETE方法 WebService AllowHttpDelete web_backend boolean类型,用于表示web是否支持HTTP DELETE操作:
true:web支持HTTP DELTE操作
false:web不支持HTTP DELETE操作,需要使用HTTP POST方法实现删除操作
true ImportAndExport

示例:

{
    ....
	"ConfigData": {
		"type": "object",
		"properties": {
			"WebService": {
				"type": "object",
				"properties": {
					"AllowHttpDelete": {
						"type": "boolean",
						"Import": true,
						"AttributeType": "ImportAndExport",
                        "description": "是否允许使用HTTP DELETE方法执行删除操作"
					}
				}
			}
		}
	}
}

2)新增BMCSet_AllowHttpDelete服务器出厂定制项,具体如下:

定制化项名称 定制化项 归属组件 取值说明 默认值 处理逻辑(伪代码) 说明 实现方式(配置文件导入、IPMI命令)
允许本地用户开启的登录接口 BMCSet_AllowHttpDelete web_backend 字符串类型:
on:允许web使用HTTP DELETE方法
off:不允许web使用HTTP DELETE方法
on if(BMCSet_AllowHttpDelete == 空)
AllowHttpDelete = on
End
设置属性AllowHttpDelete 为配置值
设置为false时表示不允许使用HTTP DELETE方法,前后端需要使用对应的HTTP POST方法进行删除操作 配置文件导入

评审结论

评审通过

遗留问题