本文转自EasyDarwin开源团队成员ss的博客:http://blog.csdn.net/ss00_2012/article/details/52262621

RTSP认证作为RTSP标准协议的一部分,其内容在网上可以找到很多,在此就不在赘述。EasyDarwin作为RTSP服务器也提供了对RTSP请求的基本认证和摘要认证。

EasyDarwin用RTSPSession对象来处理RTSP请求,在其Run函数的kAuthenticatingRequest状态和kAuthorizingRequest状态及其调用的QTSS_RTSPAuthenticate_Role角色和QTSS_RTSPAuthorize_Role角色用来处理RTSP请求的认证部分,角色的具体处理在 QTSSAccessModule模块的AuthenticateRTSPRequest函数和QTSS_RTSPAuthorize_Role函数中,其中前者主要处理用户名/密码认证,后者处理权限认证。如果想对细节有更多了解,就多分析这方面的源码,因为我也不是完全熟悉,所以就对细节不在详述,仅仅把自己研究的怎样通过文件的配置来使EasyDarwin在进行拉流基本认证和摘要认证的时候添加我们自己创建的用户名和密码。

首先下载最新版本的EasyDarwin,在***\EasyDarwin\EasyDarwin\WinNTSupport目录下存在3个文件:qtaccess、qtusers和qtgroups,qtaccess是控制访问权限的,qtusers是管理用户名和密码的,qtgroups是用来说明用户是属于那一个组的。

我们先来配置qtusers,下面是我配置好的一个qtusers文件,内容如下:

realm EasyDarwin
aGFja21l:0muym.z3yrHSw:18060847e049b6fd5d993aaa62e96585
admin:admin:6351fbbe4f7b8f2672515fed518df79d

其中第一行realm EasyDarwin,说明我们设置了认证的realm 为EasyDarwin,当然这里也可以为其他字符串。

第二行是以两个冒号分割的3个字符串,分别为我们设置的用户名、密码和加密的密码,其中密码对应于基本验证,加密的密码对应于摘要认证,用户名和密码我们可以随意设置,但加密的密码需要计算,其计算规则为MD5(username:realm:password),在这里username为aGFja21l,realm为EasyDarwin,password为0muym.z3yrHSw,经计算得到加密的密码为18060847e049b6fd5d993aaa62e96585。

第三行是设置另一个用户名和密码,其规则和第二行一样,在此不再赘述。

现在我们看下qtaccess文件,下面是我配置好的一个qtaccess文件,内容如下:

AuthScheme digest
require user aGFja21l admin

第一行表示我们采取的是摘要认证,如果想采用基本认证,在此更换为AuthScheme basic

第二行表示我们希望有哪些用户可以访问,在此将我们刚才创建的用户aGFja21l 和admin添加到这里。

OK,到此文件配置已经结束,如果你想验证下,可以使用VLC,地址键入rtsp://user:password@ip:port/XXX.sdp来进行验证,或者键入rtsp://ip:port/XXX.sdp且在接下来弹出的认证对话框里输入账号名和密码。

如果你不想添加认证,请参考文档http://blog.csdn.net/xiejiashu/article/details/39523765

EasyDarwin代码详见https://github.com/EasyDarwin/EasyDarwin

如有错误,欢迎指正!

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

QQ交流群:496258327

Copyright © EasyDarwin.org 2012-2016

EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要认证解析的更多相关文章

  1. EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要自定义认证

    本文转自EasyDarwin开源团队成员的博客:http://blog.csdn.net/ss00_2012/article/details/52330838 在前面<EasyDarwin拉流支 ...

  2. NodeJS版本EasyDarwin开源流媒体服务器开发心得

    title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...

  3. EasyDarwin开源流媒体服务器Golang版本:服务端录像功能发布

    EasyDarwin开源流媒体服务器(www.easydarwin.org)现在使用Go版本实现了.最新的代码提交,已经支持了推流(或者拉流)的同时进行本地存储. 本地存储的原理,是在推流的同时启动f ...

  4. EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法

    EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源"拉"到服务器,再通过转发协议转发给多个客户 ...

  5. EasyDarwin开源流媒体服务器性能优化之Work-stealing优化方案

    本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/52400226 EasyDarwin团队的Ba ...

  6. EasyDarwin开源流媒体服务器将select改为epoll的方法

    本文来自EasyDarwin团队Fantasy(fantasy(at)easydarwin.org) 一. EasyDarwin网络模型介绍 EventContext负责监听所有网络读写事件,Even ...

  7. 解决用EasyDarwin开源流媒体服务器做HLS直播时Flash Player卡住的问题

    最近在开发EasyDarwin开源流媒体服务器HLS直播的时候发现一个现象:在PC上用flash player播放HLS和在ios上面播放HLS时,效果明显不同,在ios上播放非常稳定,而在flash ...

  8. EasyDarwin开源流媒体服务器实现RTSP直播同步输出MP4、RTMP、HLS的方案思路

    背景 近期跟开源团队商量,想在EasyDarwin上继续做一些功能扩展,目前EasyDarwin开源流媒体服务器只能够实现高效的RTSP推流直播转发/分发功能,输入与输出都是RTSP/RTP流,不能够 ...

  9. EasyDarwin开源流媒体服务器提供的TS切片/HLS直播打包库

    EasyHLS  Github:https://github.com/EasyDarwin/EasyHLS EasyHLS是什么? EasyHLS是EasyDarwin开源流媒体社区开发的一款HLS打 ...

随机推荐

  1. Linux System Programming 学习笔记(五) 进程管理

    1. 进程是unix系统中两个最重要的基础抽象之一(另一个是文件) A process is a running program A thread is the unit of activity in ...

  2. UVa1476 Error Curves

    画出函数图像后,发现是一个类似V字型的图. 可以用三分法找图像最低点 WA了一串,之后发现是读入优化迷之被卡. /*by SilverN*/ #include<iostream> #inc ...

  3. 如何用github展示前端页面

    如何在github上展示你的前端页面 参考:https://luozhihao.github.io/demo/ 感谢作者 1.New reposipory 2.进入你本机目录 我是在d:vuedemo ...

  4. CSS3自定义滚动条

    webkit支持拥有overflow属性的区域,列表框,下拉菜单,textarea的滚动条自定义样式,不过由于用到了CSS3的属性,兼容性不好 看下滚动条demo:demo1(纯CSS3版) 滚动条的 ...

  5. 更新YUM源后的arning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY错误

    yum源更新后需要导入key值,否则报错如下,无法安装相关的包. Totalsize:42M DownloadingPackages: warning:rpmts_HdrFromFdno:Header ...

  6. 焦作F Modular Production Line 费用流

    题目链接 题解:这道题比赛的时候,学弟说是网络流,当时看N这么大,觉得网络流没法做,实际本题通过巧妙的建图,然后离散化. 先说下建图方式,首先每个覆盖区域,只有左右端点,如果我们只用左右端点的话,最多 ...

  7. rocketMq---------相关命令

    搭建就不详细说了,cent7.x的系统,openJdk8,maven3.x,gradle4.10.2, git 1.8.3.1 直接下载相关的二进制压缩包,解压即用,方便. 下面看常用的管理命令 ro ...

  8. CreateJS结合Falsh工具生成Canvas动画(加密字符串的由来)

    CreateJS是一款制作Canvas动画的工具. 官网如下: http://www.createjs.com/ http://www.createjs.cc/ 使用CreateJS时最大的疑问就是J ...

  9. DozerBeanMapper + 对象转Map方法

    1.简介     dozer是一种JavaBean的映射工具,类似于apache的BeanUtils.但是dozer更强大,它可以灵活的处理复杂类型之间的映射.不但可以进行简单的属性映射.复杂的类型映 ...

  10. WEBLOGIC启动后,重启后控制台进入缓慢、延迟,探查WEBLOGIC

    本文说的是解决过程,可直接点击本行略过探查内容,跳到最后的解决办法!! 现象: 1.WEBLOGIC安装在 CENTOSopenSUSE 等LINUX或者UNIX机器上,无论是虚拟机或者PC或者服务器 ...