GB28181流媒体协议国标视频云服务平台EasyGBS请求白名单功能开发记录
在最新版本的EasyGBS中,开启http接口鉴权后就意味着必须登录过后才能够调用后端接口。在部分场景中,有的项目想针对性地对某些IP开放鉴权,这个时候就需要添加请求白名单功能。
在没有添加白名单功能前,通过未开放鉴权的IP去访问界面,就会报权限错误,如下:
此处我们需要针对IP进行鉴权的判断,因此可以添加如下代码判断请求的来源IP,判断IP是否在预设置的白名单内,如果在内则放行,不在内则验证权限。
func CheckIP(c *gin.Context) bool {
host, _, err := net.SplitHostPort(c.Request.RemoteAddr)
if err != nil {
return false
}
sechttp := utils.Conf().Section("http")
whiteIpList := sechttp.Key("white_ip_list").MustString("127.0.0.1")
whiteIpListArr := strings.Split(whiteIpList, ",")
for _, v := range whiteIpListArr {
if v == host {
return true
}
}
return false
}
再次请求页面能够正常打开播放。
之前EasyGBS还开发了告警白名单功能,大家可以了解一下(EasyGBS如何配置告警白名单)。EasyGBS已经添加的功能包括语音对讲、云台控制、告警上报等。如果有兴趣,可以自行下载测试,测试期间可以自由调用接口进行二次开发。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结