2013-05-19 2 views
0

Моя задача - разбить существующее приложение JSF на веб-службу JAX-RS и веб-клиент JSF. Разделение должно выполняться на бизнес-уровне. Оба клиента и сервера должны работать на другом JBoss AS7.1. В настоящее время обе стороны используют аутентификацию, управляемую контейнером. JSF-клиент предоставляет доступ к uri-path/customers/* для пользователей с ролью CUST и/admin/* для пользователей с ролью ADMIN. Разумеется, веб-сервис также защищает его ресурсы (Роли: CUST & AMDIN). Аутентификация для части веб-сервиса ясна для меня. Поэтому мой вопрос заключается в том, как обеспечить надлежащую аутентификацию для JSF-клиента. Для меня есть три варианта:Управление клиентом и сеансом JAX-RS

  1. Обе стороны управляет своей собственной аутентификации (Трудно синхронизировать) Есть ли способ для синхронизации с проверкой подлинности пользователей между двумя серверами приложений JBoss?
  2. Обе стороны управляет своими учетными данные и, JSF-клиент посылает каждый запрос UsernamePasswordCredentials к вебу-службе
  3. Контейнер управляемой аутентификация выполняется только на стороне веб-службе. JSF-клиент пытается получить информацию, а в случае ответа, как: «коллегиально не прошла проверку подлинности» для JSF-клиент заставляет пользователя ввести свои учетные данные и выполняет rquest снова UsernamePasswordCredentials

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

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

ответ

1

Ad 1. Да, вы можете использовать CAS или OpenID с OAuth для авторизации

Ad 2. Это общий подход в «истинный» REST приложений мира - каждый вызов является лицом без гражданства, учетные данные пользователя каждый раз, когда необходимо передать и проверили.

Объявление 3. Если приложение JSF содержит только данные, которые могут быть доступны без аутентификации (JSF - простые шаблоны), это разумное решение.

+0

Отличный ответ, THX! OAuth представляется наиболее подходящим решением. JBoss предоставляет хорошую документацию для [Аутентификация с помощью OAuth] (http://docs.jboss.org/resteasy/2.0.0.GA/userguide/html_single/#d0e2687) –

Смежные вопросы