使用 spring-security-oauth2 2.0.5.RELEASE 保护 Spring REST 服务

Posted

技术标签:

【中文标题】使用 spring-security-oauth2 2.0.5.RELEASE 保护 Spring REST 服务【英文标题】:Secure Spring REST Service using spring-security-oauth2 2.0.5.RELEASE 【发布时间】:2015-03-23 08:45:01 【问题描述】:

我一直在寻找使用 oauth 2.0 保护的示例 Spring Webservice..

环顾四周,我找到了https://github.com/spring-projects/spring-security-oauth/tree/master/samples/oauth2,但项目中似乎缺少一些文件。

我正在寻找的两件事是:

当用户进行身份验证时,用户名和密码转到 /login.do ,现在我无法理解这个 Servlet 是如何配置的,如果它不是控制器的话。 web.xml 丢失。 当我尝试查看 bean 的配置方式时,applicationContext.xml 也丢失了。我无法找到这些文件以查看配置情况。

需要帮助:

我是否应该使用注释来配置我的 Web 服务或 xml 配置。我愿意使用最新版本,并利用高级配置,以获得更好的安全性。

我有另一个单页应用程序 (html5),它从托管在 Google App Engine 上的这个 Spring Web 服务访问数据。我的最终目标是创建一个 (html5) 页面的 chrome 插件并从那里使用我的服务..

请建议一条更好的路径,以便我可以实现我的目标。

最好的问候, 沙尚克·普拉塔普

【问题讨论】:

嗨,首先,我希望有人能让我知道使用 oauth 2.0 更好地保护我的网络服务。我正在寻找一些技术性的东西。 Servlet 3.0 不再需要 web.xml(您可能想更新您对 servlet 规范的了解)。 Spring 提倡基于 java 的配置而不是 xml。所以什么都没有…… 太宽泛了,请一次问一个问题。 【参考方案1】:

为迟到的回复道歉。

1) 关于 Oauth2.0 实现:由于 GAE 不支持 Servlet 3.0,因此开发人员仅限于 servlet 2.5。因此我发现我们仅限于 1.0.5.RELEASE。我能够成功配置它。

GAE 最佳实践:我建议其他人使用 Google Endpoints,而不是遵循这种方法。由于它支持 oauth2.0 并且我们可以相对快速地开发 REST API。

扩展能力和响应时间:由于我使用 Spring 依赖注入和 Spring Security,应用程序的响应速度比 Google Endpoints 和 Google Juice 的组合慢,因为 Juice 会及时注入,其中因为 spring 会在新实例启动后立即准备好一切,这给我带来了问题。

2) Chrome 插件是完全不同的故事。 :-)

如果我错了,请纠正。 谢谢, 沙尚克·普拉塔普

【讨论】:

以上是关于使用 spring-security-oauth2 2.0.5.RELEASE 保护 Spring REST 服务的主要内容,如果未能解决你的问题,请参考以下文章

spring-security-oauth2 替代品

spring-security-oauth2中的HttpSecurity配置问题

如何使用 redis 使用 spring-security-oauth2 持久化令牌

使用 spring-security-oauth2 2.0.5.RELEASE 保护 Spring REST 服务

spring-security-oauth2注解详解

spring-security-oauth2注解详解