Как обычно реализуются права при использовании ядра CEP?

Я создаю систему, в которой механизм CEP выглядит хорошо (мне нужно обнаруживать временные закономерности между событиями в нескольких потоках). Обнаруженные события необходимо отображать для конечных пользователей в приложении WPF, но не все пользователи имеют право просматривать все события.

Как это обычно обрабатывается при использовании механизма CEP? Нужен ли мне дополнительный сервисный уровень между приложением пользовательского интерфейса и механизмом CEP, или это можно сделать в самом механизме CEP?


person Daniel Johnson    schedule 14.10.2013    source источник


Ответы (1)


Я не уверен, что есть «обычный» ответ на этот вопрос для всех двигателей CEP. Двигатели CEP действительно совсем не одинаковы в предоставляемых ими услугах.

Вы пометили этот вопрос как «streambase», так что я могу немного поговорить об этом. Среда выполнения StreamBase CEP поддерживает аутентификацию пользователя при создании клиентского соединения с сервером для удаления кортежей из очереди из выходных потоков. Люди обычно подключают это к своему локальному серверу LDAP или AD.

Тем не менее, в среде выполнения StreamBase CEP нет механизма принудительной авторизации/прав для удаления из очереди для каждого кортежа, по крайней мере, в текущем выпуске (7.3).

Таким образом, когда пользователи StreamBase хотят принудительно применять права для каждого кортежа, мы обычно советуем им встроить это на уровне приложения или использовать какую-либо другую доступную инфраструктуру. Например, вместо того, чтобы использовать собственные подключения StreamBase Client, используйте адаптер для чего-то вроде TIBCO EMS или IBM MQSeries и используйте там права для каждой темы/очереди, чтобы ограничить доступ. Или, в качестве другого примера, пусть сервер StreamBase отправляет токен обратно аутентифицированному пользователю после подключения и использует этот токен в качестве ключа для проверки прав на стороне клиента по LDAP с помощью перехватчика удаления из очереди.

Или, как вы говорите, используйте свой собственный слой сервисов.

Есть еще один пример «Службы прав бедняков» на бирже компонентов StreamBase. Найдите «Права StreamBase». При этом используется база данных в памяти или база данных JDBC для хранения пользователей, ролей и прав и их применения на стороне сервера с помощью эффективного механизма проверки прав во время выполнения. Но для соединений с этим нет строгих ограничений во время выполнения; это просто пример реализации функций прав с приятным пользовательским интерфейсом. Клиенты добровольно соблюдают ограничения, что, вероятно, не то, о чем вы просили.

Раскрытие информации/отказ от ответственности: я являюсь сотрудником TIBCO Software, Inc. Высказанные здесь мнения являются моими собственными, а не TIBCO.

person sbarber2    schedule 08.11.2013