随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

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已经添加的功能包括语音对讲、云台控制、告警上报等。如果有兴趣,可以自行下载测试,测试期间可以自由调用接口进行二次开发。

posted on   EasyGBS  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示