当前想知道,在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的答案,因为它是正确的,我现在的方式是用最少的时间进行正确的研究,但是给予了奖励,因为它也是正确的,并且他回复了更多的信息和理由。
答案 0 :(得分:6)
我会去
这可以帮助您确定所需的持久性提供程序:Persistence Provider comparison 我会选择Hibernate,因为它有许多很棒的功能,如Criteria API,hibernate Search以及它被广泛使用。
当然你的应用程序应该使用JPA 2来实现可互换性,而不是直接使用持久性提供程序(从一个到另一个机会不容易,但是使用JPA2它可能也会给你带来很多麻烦但是这是可能的)
答案 1 :(得分:6)
使其变得简单和现代(对于RESTful Web服务,Spring既不是一个也不是另一个):
看看at this project on GitHub,它会从静态数据中生成JSON。其web.xml和ProductResource是开始的好地方。
答案 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一起使用。