2009-05-07 5 views
0

У меня есть веб-приложение Java Enterprise Edition, стандартное WAR. Я хочу интегрировать это с существующей инфраструктурой .NET, использующей IIS. Чтобы быть конкретным, мне нужно иметь возможность совместно использовать пользовательские сеансы между двумя приложениями.Интеграция Java EE с .NET для аутентификации

Есть ли «стандартный» способ сделать это?

Редактировать: мне не нужен полный сеанс обмена, извините за то, что не указали это. Что мне нужно, чтобы проверить, проверяется ли пользователь с помощью приложения .NET при подключении к приложению Java EE.

+0

Вам нужно поделиться всеми данными, которые есть у пользователей в своей веб-сессии J2EE (или, возможно, только с некоторыми из них), или вы хотите, чтобы они были единственными только один раз и имели доступ к обоим приложениям? –

+0

Soory, слишком много опечаток, пожалуйста, не обращайте внимание на приведенный выше комментарий :) Вам нужно поделиться всеми данными, которые пользователи имеют в своей веб-сессии J2EE (или, возможно, только с некоторыми данными) с приложениями .NET, или вы скорее хотите, чтобы пользователи подписывались только один раз, а затем имели доступ к приложениям J2EE и .NET? –

+0

Мне нужна только проверка подлинности - см. Мое редактирование в вопросе. Извините, что не указывал! –

ответ

0

Очень сомнительно.

Вам придется перенести состояние сеанса на третий компонент, такой как база данных. Я сомневаюсь, что встроенные провайдеры для любой инфраструктуры вообще не похожи (что касается схем и т. Д.); поэтому вам нужно создать свой собственный.

Это звучит не так, как было бы здорово.

+0

Хорошо, мой ответ, вероятно, уже не применим теперь, когда вы выяснили, что вас интересует только сингл. –

+0

удалить или изменить его? – IAdapter

1

Создайте веб-службу .NET (используя, конечно, WCF), чтобы вернуть, аутентифицирован ли пользователь. Затем вызовите эту веб-службу из приложения Java EE.

+0

Есть ли способ сделать это без необходимости записи пользователем каких-либо учетных данных? Я думал о какой-то форме хищения печенья, но одна и та же политика происхождения применяется к портам, а также к доменам, если я не ошибаюсь. –

+0

Я не знаю достаточно о J2EE, чтобы ответить на это. Я предполагаю, что вам нужно каким-то образом передать идентификатор сеанса .NET на Java, чтобы он мог предоставить это в вызове веб-службы. –

0

Если они будут работать на одном сервере, вам понадобится фильтр перенаправления isapi, например isapi_redirect.dll, который поставляется с Tomcat.

0

Эта библиотека с открытым исходным кодом, http://spnego.sourceforge.net, позволит вашему приложению java выполнять прозрачную/интегрированную проверку подлинности Windows.

Он установлен как фильтр сервлетов, поэтому вам не нужно писать код.