【发布时间】:2013-09-07 21:16:19
【问题描述】:
我有一个基于 HTTP 的 java 客户端/服务器应用程序。现在我想添加一些 SIP 功能。服务器只能接受来自经过身份验证的用户的 SIP 消息,但身份验证是基于 HTTP 的。
有没有办法只为通过 HTTP 认证的用户授权 SIP 消息?
容器:JBoss 7 上的 mobicents 2
PS:我使用声明式安全性,因此容器必须知道用户身份。
更新
我需要的是一种身份验证跟踪系统,类似于 sip 消息的 cookie:在每条 sip 消息中添加一个令牌,通知容器我已经通过 HTTP 进行了身份验证。
一种方法可能是通过自定义 SIP 标头传递令牌,而不是使用 @SipApplicationKey 加入 SipApplicationSession。在这种情况下,问题是我无法从 HttpSession 生成密钥。此外,我不确定加入 SipApplicationSession 是否能解决问题,因为 jsr289 表示 SipApplicationSession 可以有多个 HttpSession,因此可能有多个经过身份验证的用户。
【问题讨论】:
-
SIP servlet 的表单身份验证与任何其他 servlet 的表单身份验证没有什么不同。这一切都在
web.xml和 Servlet 规范中定义。 -
@EJP:是的,但是一旦用户通过 HTTP 进行身份验证,sip 容器如何知道传入的 sip 消息是否属于该经过身份验证的用户?使用 HTTP,我可以使用 cookie 来跟踪会话。
-
通过检查
HttpSession,remoteUser等
标签: java authentication sip-servlet