我有一个基于HTTP的java客户端/服务器应用程序。现在我想添加一些SIP功能。服务器只能接受来自经过身份验证的用户的SIP消息,但身份验证是基于HTTP的。
是否有办法仅为通过HTTP验证的用户授权SIP消息?
容器:JBoss 7上的mobicents 2
PS:我使用声明性安全性,因此容器必须知道用户身份。
更新
我需要的是一种身份验证跟踪系统,类似于sip消息的cookie:在每个sip消息中添加的令牌,通知容器我已通过HTTP进行身份验证。
一种方法是通过自定义SIP标头传递令牌,而不是使用@SipApplicationKey
加入SipApplicationSession。在这种情况下,问题是我无法生成HttpSession的密钥。除了我不确定加入SipApplicationSession解决问题,因为jsr289说SipApplicationSession可以有多个HttpSession,因此可能有多个经过身份验证的用户。
答案 0 :(得分:0)
SipApplicationSession
用于加入两个(或更多)SipSession
,以便创建一个背对背的UA。
我需要做类似的事情,我正在以这种方式实施它。
最大的问题是如何将SipSession
与HttpSession
相关联。如果您已完成此操作,则只需从关联的SipSession
获取HttpSession
的经过身份验证的用户。
为此我将在SIP消息中发送一个额外的标题,让我们称之为SESSIONID
,其值为`httpSession.getId()'。然后,在处理SIP消息时,您可以扫描HTTP会话并将SIP会话与具有相应ID的会话相关联。