URL身份验证不适用于Icecast

时间:2015-04-09 01:52:57

标签: audio-streaming icecast

我在Icecast上配置了URL身份验证。但是,会弹出HTTP基本身份验证窗口。

我认为如果身份验证类型是url,则不会弹出窗口。 我该怎么设置?

<mount type="default">
</mount>

<mount type="normal">
  <mount-name>/ices</mount-name>
  <public>-1</public>
  <authentication type="url">    
    <option name="listener_add" value="http://localhost/listener-joined.php" />
    <option name="listener_remove" value="http://localhost/listener-left.php" />    
  </authentication>
</mount>

我想事先在自己设定的身份证件中进行身份验证。我在文档中读到了如果我在URL中请求它,例如我可以将其包含在数据中以发布到listener-joined.php。

  

/stream.ogg&session=xyz

所以,我让底部的URL请求用户,并想确认id是否在脚本中注册了数据库。

  

/冰和ID = hogehoge

1 个答案:

答案 0 :(得分:0)

official documentation on URL based authentication中所述,特别是 listener_add 部分:
注意: 此处的挂载(与开始/结束选项不同)表示请求的网址包含任何查询参数,因此例如请求的网址可以是/ stream。 ogg&amp; session = xyz,但请注意,每个选项数据在通过POST传递之前都会被转义。

您的脚本( listener-joined.php )必须解释此数据,如果满足,则返回授权HTTP标头,默认情况下为:icecast-auth-user: 1

如果您的脚本返回标题,例如因为不允许id=foobar,所以Icecast服务器将拒绝侦听器连接,其HTTP状态代码为 401 。然后大多数浏览器和一些播放器会弹出身份验证对话框。

有一个ticket to make this configurable,例如到 403 ,它不会弹出这样的对话,或允许重定向30倍。