SIP-сервлет FORM аутентификация

У меня есть клиент-серверное приложение Java, основанное на HTTP. Теперь я хочу добавить немного функциональности SIP. Сервер может принимать сообщения SIP только от аутентифицированного пользователя, но аутентификация основана на HTTP.

Есть ли способ авторизовать SIP-сообщения только для пользователей, прошедших аутентификацию через HTTP?

Контейнер: mobicents 2 на JBoss 7

PS: я использую декларативную безопасность, поэтому контейнер должен знать личность пользователя.

ОБНОВИТЬ

Что мне нужно, это своего рода система отслеживания аутентификации, что-то вроде cookie для sip-сообщений: токен, добавляемый в каждое sip-сообщение, которое сообщает контейнеру, что я уже аутентифицирован через HTTP.

Можно было бы передать токен с помощью пользовательского заголовка SIP, чем с помощью @SipApplicationKey присоединиться к SipApplicationSession. В этом случае проблема заключается в том, что я не могу сгенерировать ключ из HttpSession. кроме того, я не уверен, что присоединение к SipApplicationSession решит проблему, так как jsr289 говорит, что SipApplicationSession может иметь более одной HttpSession, таким образом, потенциально, более одного аутентифицированного пользователя.

1 ответ

SipApplicationSession для объединения двух (или более) SipSession для того, чтобы создать спина к спине UA.

Мне нужно сделать что-то подобное, и я работаю над тем, чтобы реализовать это таким образом. Самая большая проблема заключается в том, как связать SipSession с HttpSession, Если вы сделали это, вы можете просто получить аутентифицированного пользователя SipSession от ассоциированного HttpSession,

Для этого я отправлю дополнительный заголовок в сообщениях SIP, назовем его SESSIONID и значение будет `httpSession.getId()'. Затем при обработке сообщения SIP вы можете сканировать сеансы HTTP и связывать сеанс SIP с сеансом с соответствующим идентификатором.

Другие вопросы по тегам