本文转自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. jquery 日期插件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 转Yii框架radioButtonlist水平横排及去除除换行符号

    横排: echo $form->radiobuttonlist($model, ‘type’,$arrtype,array(‘template’ => ‘<li style=”dis ...

  3. Yii命令行模式

    (具体参数描述请使用命令看描述,不过全是英文) 1.Yii提供命令行指令不多,常用的有webapp 和 shell. 1.  message 搜索指定文件信息 yicc message webroot ...

  4. codevs——2548 自然数积分解

    2548 自然数积分解  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 把自然数N分解为若干个自然数之积,输出 ...

  5. How to Mount a USB Drive in Ubuntu

    Read more : http://www.ehow.com/how_6762235_mount-usb-drive-ubuntu.html Most USB drives will automou ...

  6. [BZOJ5286][洛谷P4425][HNOI2018]转盘(线段树)

    5286: [Hnoi2018]转盘 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 15  Solved: 11[Submit][Status][Di ...

  7. win10下ubuntu虚拟机互传文件

    前言 用过虚拟机的都知道在向linux传文件的时候总是会遇到各种问题 安装虚拟机的增强工具不好用,反正就是各种麻烦各种麻烦 准备-------方案一 使用专门的xshell可以直接链接到虚拟机,同时配 ...

  8. iPhone 证书导出分享给多个开发人员操作

    1.应用程序->实用工具->keychain Access->操作如图1 2.将上图导出的证书.AppleWWDRCA.cer.mythlinkDeveloper.mobilepro ...

  9. 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”

    首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中对本模块提供给其它模块 ...

  10. linux mysql-server can't find mysql_config

    linux mysql-server can't find mysql_config Ask Question up vote7down votefavorite 3 I have a running ...