什么是当前用于实现REST / J2EE / Database +自定义身份验证的工具的良好组合

时间:2011-11-08 06:59:36

标签: java authentication java-ee rest openid

当前想知道,在J2EE之上实现REST API的工具/框架/库的良好组合是什么,它集成到后端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.

还有指向优秀,当前教程,书籍等的任何指示。


编辑: 不幸的是,我没有那么多的时间来研究这个问题的结果,正如我所喜欢的那样。

在此阶段,我发现使用Jersey安装/设置REST非常快,我相信我可以使用ContainerRequestFilter根据以下文章提供OpenID支持:http://plaincode.blogspot.com/2011/07/openid-authentication-example-in-jersey.html

我打算使用OpenId4Java进行OpenId支持,使用PAPE扩展来获取用户返回的电子邮件地址。我不需要OAuth,因为我不需要从我的服务器应用程序访问其OpenID网站上的任何其他OpenID详细信息或信息。

我看过最新的Spring,它看起来非常好,如果我需要使用我的解决方案构建一个Web客户端,或者有更多时间来查看它们,我很容易就会倾向于这样。

感谢您的回答和回复,很难找到一个正确答案。我已经接受了yves的答案,因为它是正确的,我现在的方式是用最少的时间进行正确的研究,但是给予了奖励,因为它也是正确的,并且他回复了更多的信息和理由。

3 个答案:

答案 0 :(得分:6)

我会去

  • Spring 3:这对于使用Dependency进行连接非常有用 注射和其他东西。
  • Spring MVC:Restful support和Request mapping,基于请求 与Spring结合得很好的框架
  • Apache Tiles:使HTML模板更容易制作。
  • Spring Security:这是一个JAAS实现,对我而言,它更好 比标准JAAS更容易。(不需要完整的Web服务器,tomcat会很好)

这可以帮助您确定所需的持久性提供程序:Persistence Provider comparison 我会选择Hibernate,因为它有许多很棒的功能,如Criteria API,hibernate Search以及它被广泛使用。

当然你的应用程序应该使用JPA 2来实现可互换性,而不是直接使用持久性提供程序(从一个到另一个机会不容易,但是使用JPA2它可能也会给你带来很多麻烦但是这是可能的)

答案 1 :(得分:6)

使其变得简单和现代(对于RESTful Web服务,Spring既不是一个也不是另一个):

看看at this project on GitHub,它会从静态数据中生成JSON。其web.xmlProductResource是开始的好地方。

  • 每个服务器都可以完成这项工作, Jetty 是我最喜欢的, Tomcat ,标准
  • IDE的选择取决于您,您提供的3个很棒,与Maven和源代码控制工具完美集成。我使用 Eclipse 来自习惯

答案 2 :(得分:0)

我会按照here

的说明使用NetBeans 7.0.1和GlassFish

来自链接教程:

  

IDE支持使用JSR 311快速开发RESTful Web服务 - 用于RESTful Web服务的Java API(JAX-RS)和用于JAX-RS的参考实现。

对于身份验证,我会使用GlassFish JDBC Realm(看看this tutorial)但我从未使用过OpenID,因此我不知道这种方法是否可以与OpenID一起使用。