Какая хорошая комбинация инструментов для реализации REST / J2EE / Database + custom auth - PullRequest
6 голосов
/ 08 ноября 2011

В настоящий момент мне просто интересно, какова хорошая комбинация инструментов / сред / библиотек для реализации REST API поверх J2EE, которая интегрируется в RDB бэкэнда и использует OpenID для аутентификации.

Я хочу реализовать серверный компонент, который предоставляет набор сервисов, каждый из которых будет использовать аутентификацию OpenID, а сервисы будут извлекать или обновлять информацию в / из среды реляционной базы данных.

Что меня интересует:

* application server options available (e.g. Tomcat, Glassfish etc.)
* IDE's (e.g. Eclipse, Netbeans, IntelliJ etc.)
* additional components useful for implementing REST (and JSON payloads)
* what is best practice/good technique/options available for database integration from the services (hibernate via spring, hibernate directly, raw jdbc connections ... )
* for integrating authentication via OpenID - what is an appropriate integration point for any custom authentication mechanism within the J2EE environment - are there any commonly used solutions/plug-ins available for OpenId etc.

Также есть ссылки на хорошее, текущие учебники, книги и т. Д.


Редактировать: К сожалению, у меня нетУ меня было столько времени, чтобы исследовать результаты по этому вопросу, сколько мне бы хотелось.

На этом этапе я обнаружил, что установка / настройка REST с Джерси была очень быстрой, и я полагаю, что могу использовать ContainerRequestFilter для обеспечения поддержки OpenID согласно статье здесь: http://plaincode.blogspot.com/2011/07/openid-authentication-example-in-jersey.html

Я намерен использовать OpenId4Java для поддержки OpenId, с расширениями PAPE для получения адреса электронной почты пользователей.Мне не нужен OAuth, так как мне не нужно получать доступ к каким-либо пользователям, другим подробностям OpenID или информации на их сайте OpenID из моего серверного приложения.

Я посмотрел последнюю версию Spring, этовыглядит очень хорошо, и если бы мне нужно было создать веб-клиент с моим решением, или у меня было больше времени, чтобы рассмотреть оба варианта, я мог бы легко склониться к этому.

Спасибо за хорошие ответы и ответы, трудно выбрать один правильный ответ.Я принял ответ «да», потому что это правильно и так, как я сейчас делаю, с минимальным временем для правильного исследования, но присудил награду cfontes за вознаграждение, поскольку это также правильно, и он ответил дополнительной информацией и обоснованием.

Ответы [ 3 ]

6 голосов
/ 15 ноября 2011

Сделайте его простым и современным (Spring не является ни тем, ни другим для веб-сервисов RESTful):

Посмотрите на этот проект на GitHub , он генерирует JSON из статических данных. Его web.xml и ProductResource - хорошие места для начала.

  • Каждый сервер выполнит свою работу, Пристань - мой любимый, Tomcat , стандарт
  • Выбор IDE остается за вами, 3, которые вы даете, великолепны, хорошо интегрированы с Maven и инструментами контроля версий. Я использую Eclipse от привычки
6 голосов
/ 08 ноября 2011

Я бы выбрал

  • Spring 3: это может быть полезно для объединения вещей с внедрением Dependency и других вещей.
  • Spring MVC: Restful support и Request mapping, aоснованная на запросах инфраструктура, которая очень хорошо интегрируется с Spring
  • Apache Tiles: для упрощения создания шаблонов HTML.
  • Spring Security: это реализация JAAS, и для меня это лучше и проще, чем Standard JAAS. (не нужен полноценный веб-сервер, tomcat подойдет)

Это может помочь вам решить, какой поставщик сохраняемости вы хотите: Сравнение поставщиков сохраняемости Я бы выбрал Hibernateпотому что в нем много замечательных функций, таких как API Criteria, поиск в режиме гибернации, и он широко используется.

Конечно, ваше приложение должно использовать JPA 2 для взаимозаменяемости, а не напрямую для использования поставщика сохраняемости (это не так.легко переходить от одного к другому, но с JPA2 это возможно, также должно доставить вам много хлопот, ноэто возможно)

0 голосов
/ 15 ноября 2011

Я бы пошел с NetBeans 7.0.1 и GlassFish, как объяснено здесь

Из связанного урока:

IDE поддерживает быструю разработку веб-сервисов RESTful с использованием JSR 311 - Java API для веб-сервисов RESTful (JAX-RS) и Jersey, эталонной реализации для JAX-RS.

Для аутентификации я бы использовал GlassFish JDBC Realm (посмотрите этот урок ), но я никогда не работал с OpenID, поэтому я не знаю, можно ли использовать этот подход вместе с OpenID .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...