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