保护 Grails REST 服务以用于移动应用程序

Posted

技术标签:

【中文标题】保护 Grails REST 服务以用于移动应用程序【英文标题】:Securing Grails REST service for use with mobile applications 【发布时间】:2011-12-18 13:48:24 【问题描述】:

我正忙于研究如何将 REST 服务用于移动应用程序,希望能得到一些见解。场景如下。

考虑一个为用户提供服务的 Web 应用程序。 Web 应用程序也将成为用户的主要交互点。这将在 Grails 中完成,并使用 Spring Security 进行保护。

现在,我们希望提供 REST 服务,以便用户可以通过移动应用程序使用该服务。由于 Grails 对现有的 Web 应用程序 RESTful 的支持非常好,因此我们将使用内置的 Grails 支持。

我现在的问题是,保护 REST 服务接口的“最佳”方式是什么,以便它可以在移动应用程序(本机 - ios、Andriod、WM7、BB)中使用。

交换的信息高度敏感,因此越安全越好。

谢谢

【问题讨论】:

【参考方案1】:

我们决定将我们的 grails 项目一分为三...

model-domain-project(这是“管理”部分,所有视图/控制器脚手架,以及所有服务、域) web-app(这是主应用程序、控制器、视图) api-rest-app(这是其余控制器)

model-domain-project 是一个插件,它插入到 web-app 和 api-app 中,包含域模型、服务以及所有的数据库安全、事务等。

web-app 是所有的 html 模板、视图和控制器,这里我们使用 Spring Security 的属性

我们正在使用 grails-filters 的 api-rest-app,我们正在通过 https 使用带有过期日期的令牌的 Basic-Authorization...

如果到了令牌的到期日期,您将不得不使用我们发送给您的第一个令牌的“请求令牌”请求另一个令牌......(它或多或少像 oauth2)

要获得前两个令牌,您必须通过使用用户/电话/密码登录来确认设备,然后通过短信收到一个密钥,您必须在应用程序中输入该密钥

不知道这是否是最好的方式,但我们就是这样做的......

有时我们使用 web-app 作为客户端并调用 api-rest-app...

【讨论】:

有趣的方法,我们也想这样做。你能分享一个过滤器实现的例子吗? 嗨!我不再从事那个项目,而且我没有 src。 awalkingcity.com/blog/2008/03/07/… 这里很简单。希望对你有帮助

以上是关于保护 Grails REST 服务以用于移动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Security Rest 插件保护 Grails Rest Api

保护移动应用程序访问的REST-API,无需登录

使用 GRAILS、GROOVY、ORACLE 和 API KEY 保护 REST API

使用 Spring Boot 保护移动应用程序和微服务的 Rest API [关闭]

grails spring security rest /api/login 401 Unauthorized

从 Android 调用使​​用 Spring Security 保护的 REST Web 服务