EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要认证解析
本文转自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。
如有错误,欢迎指正!
获取更多信息
QQ交流群:496258327
Copyright © EasyDarwin.org 2012-2016

EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要认证解析的更多相关文章
- EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要自定义认证
本文转自EasyDarwin开源团队成员的博客:http://blog.csdn.net/ss00_2012/article/details/52330838 在前面<EasyDarwin拉流支 ...
- NodeJS版本EasyDarwin开源流媒体服务器开发心得
title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...
- EasyDarwin开源流媒体服务器Golang版本:服务端录像功能发布
EasyDarwin开源流媒体服务器(www.easydarwin.org)现在使用Go版本实现了.最新的代码提交,已经支持了推流(或者拉流)的同时进行本地存储. 本地存储的原理,是在推流的同时启动f ...
- EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法
EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源"拉"到服务器,再通过转发协议转发给多个客户 ...
- EasyDarwin开源流媒体服务器性能优化之Work-stealing优化方案
本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/52400226 EasyDarwin团队的Ba ...
- EasyDarwin开源流媒体服务器将select改为epoll的方法
本文来自EasyDarwin团队Fantasy(fantasy(at)easydarwin.org) 一. EasyDarwin网络模型介绍 EventContext负责监听所有网络读写事件,Even ...
- 解决用EasyDarwin开源流媒体服务器做HLS直播时Flash Player卡住的问题
最近在开发EasyDarwin开源流媒体服务器HLS直播的时候发现一个现象:在PC上用flash player播放HLS和在ios上面播放HLS时,效果明显不同,在ios上播放非常稳定,而在flash ...
- EasyDarwin开源流媒体服务器实现RTSP直播同步输出MP4、RTMP、HLS的方案思路
背景 近期跟开源团队商量,想在EasyDarwin上继续做一些功能扩展,目前EasyDarwin开源流媒体服务器只能够实现高效的RTSP推流直播转发/分发功能,输入与输出都是RTSP/RTP流,不能够 ...
- EasyDarwin开源流媒体服务器提供的TS切片/HLS直播打包库
EasyHLS Github:https://github.com/EasyDarwin/EasyHLS EasyHLS是什么? EasyHLS是EasyDarwin开源流媒体社区开发的一款HLS打 ...
随机推荐
- Memcached简单介绍
Memcached简单介绍 简介:Memcached是一个自由开源的,高性能,分布式内存对象缓存系统.================================================= ...
- Codeforces 934 A.Compatible Pair
http://codeforces.com/contest/934 A. A Compatible Pair time limit per test 1 second memory limit p ...
- Debian9安装MariaDB
一:导入密钥并添加了存储库 sudo apt-get install software-properties-common dirmngr sudo apt-key adv --recv-keys - ...
- [转载][FPGA]有限状态机FSM学习笔记(二)
1. Mealy和Moore状态机的互换 对于给定的时序逻辑功能,可以用Mealy机实现,也可以用Moore机实现.根据Moore机比Mealy机输出落后一个周期的特性,可以实现两种状态机之间的转换. ...
- luogu P1879 [USACO06NOV]玉米田Corn Fields
题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ...
- arch 安装
xfce参考 http://my.oschina.net/u/1408707/blog/182581#OSC_h2_6 chm阅读 – chmsee作为一个苦逼的码农,要忍受各种chm文件的蹂躏,这个 ...
- Android中使用SDcard进行文件的读取
来自:http://www.cnblogs.com/greatverve/archive/2012/01/13/android-SDcard.html 平时我们需要在手机上面存储想音频,视频等等的大文 ...
- 【Maven jar】打包单个或多个文件,有依赖jar包的将架包一起打包成一个jar包供别的项目引用
之前有一片文章,是打包单个java文件的.这次想要将http://www.cnblogs.com/sxdcgaq8080/p/8398780.html 打包成jar包,发现这个java文件中引用了多 ...
- IOS 后台保持连接
当iphone应用程序进行网络编程时,切到后台后,socket连接会断掉,ios的设计就是这样. 但是好在apple公司也没有那么绝,还是有一些东西可以在后台运行的(backgroundmodes), ...
- dubbo常见问题解答FAQ
常见问题解答 1. 如果服务注册不上怎么办? 2. 出现RpcException: No provider available for remote service异常怎么办? 3. 出现调用超时co ...