如何让onvif避开lighttpd的安全认证
访问网页需要认证功能,然而onvif的cgi也是通过lighttpd来call起来的,如何做到访问跟onvif无关的请求时需要认证,而访问onvif时又不需要认证呢?
想来几种方法,都记录下来吧
(1) 启动多个lighttpd,分别load不同的config, config之间的port不能重复。
(2) 修改source code。这种方法不太好,but it do works.
(3) 修改配置文件如下:
- ####digest method, htdigest password
- $HTTP["url"] =~".html|^/cgi-bin/|^/js/|^/img/|^/css/" {
- auth.backend = "htdigest"
- auth.backend.htdigest.userfile = "/var/htdigest_user.txt"
- auth.require = ( "/" => (
- "method" =>"digest",
- "realm" => "xxxx",
- "require" =>"valid-user"
- ) )
- }
- $HTTP["url"]=~ "^/onvif/device_service" {
- cgi.assign = ( "/device_service"=> "" )
- }
千万注意,下列语句中不能有空格。
$HTTP["url"] =~".html|^/cgi-bin/|^/js/|^/img/|^/css/|^/plugin/" {
有空格了,就不起作用了。自己在实验时被空格折腾的要吐血了。