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

gam*_*zii 6 java openid authentication rest java-ee

只是想知道当前的时间点,用于在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.
Run Code Online (Sandbox Code Playgroud)

还有指向好的,当前的教程,书籍等的任何指针.


编辑:不幸的是,我没有那么多时间研究这个问题的结果,因为我喜欢.

在这个阶段,我发现使用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的答案,因为它是正确的,我现在的方式是用最少的时间进行正确的研究,但是给予了答案的赏金,因为它也是正确的,并且他回复了更多的信息和理由.

Cri*_*tes 6

我会去的

  • Spring 3:这对于依赖注入和其他事情进行连接非常有用.
  • Spring MVC:Restful支持和Request映射,一个基于请求的框架,可以很好地与Spring集成
  • Apache Tiles:使HTML模板更容易制作.
  • Spring Security:它是一个JAAS实现,对我来说它比标准JAAS更好更容易.(不需要一个完整的Web服务器,tomcat会很好)

这可以帮助您决定您想要哪个持久性提供程序:持久性提供程序比较我会选择Hibernate,因为它有许多很棒的功能,如Criteria API,hibernate Search以及它被广泛使用.

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

  • 这是一篇关于如何在AJAX模型中使用Spring MVC和JSON/jQuery的[伟大文章](http://blog.springsource.org/2010/01/25/ajax-simplifications-in-spring-3-0/) .此外,[示例源](https://src.springframework.org/svn/spring-samples/mvc-ajax/)可用,它将让您立即运行. (2认同)

yve*_*lem 6

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

看看GitHub上的这个项目,它从静态数据中生成JSON.它的web.xmlProductResource是很好的起点.

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

  • 虽然Jersey可以成为问题的另一个解决方案,但我不同意你对Spring MVC不简单或现代,你有没有使用过Spring MVC 3?它非常直接,得到很好的支持,有很好的文档记录和RESTful,如今你在本文中可以看到,jersey的焦点不同于Spring MVC http://www.infoq.com/articles/springmvc_jsx-rs Spring使用JAX- RS标准就像泽西岛一样,但是试图让它适应Spring并使其更适用于Web应用程序而不是Web服务 (2认同)