使用安全REST插件保护REST API

时间:2014-02-24 13:37:53

标签: api security rest grails plugins

我正在GRAILS建立一个决策支持工具,用于我的高中的房间安排。我正在使用Spring Security,我想保护REST api。我发现很少有关于正确方法的信息。但是我一直在寻找Spring Security REST plugin

文档对我来说不是很清楚,有没有人使用这个插件有一个工作示例/教程?

关于如何实现这一点的建议会很棒。

1 个答案:

答案 0 :(得分:3)

我只是为你大声朗读序列图。我正在使用这个插件和(客户端的AngularJS)开发一个示例应用程序,很快就会发布(可能是今晚)。

以下是步骤:

  • 客户端使用任何HTTP方法请求REST资源。
  • 服务器使用401(未经授权的)响应客户端的请求。
  • 客户端(收到401时)将用户重定向到登录页面以提供用户名和密码。 (记住Spring Security Core插件)
  • 用户提供用户名和密码。 (意味着,客户端应发出一个POST请求命中/ spring api / login由spring security REST插件提供,请求正文/请求参数包含用户详细信息)
  • 接收用户信息的服务器执行4项任务:
    • 验证用户。
    • 生成令牌(默认情况下由Spring Security REST插件提供)。
    • 存储令牌(在memcahe或GORM指定的域类中)。
    • 将令牌返还给被叫方(客户端)。
  • 在从服务器接收生成的令牌后,客户端将其存储在任何本地存储中,并用于为该特定用户进行进一步的API调用。
  • 每次针对任何资源点击API时,令牌都会在标头中传递为X-Auth-Token(默认),而不是每次都传递Basic Auth

因此,您最终会对REST端点进行基于令牌的验证。 通过插件的FAQ获取更多答案。

作者将很快发布最新版本的插件(1.3.0),您会在文档中找到一些更新。

我刚刚触及了此插件的基本功能,但它可以灵活处理,而不仅仅是生成令牌。例如,delegating auth to OAuth providers。一旦我将它推送到github,我将在此答案中更新上述示例应用程序的链接。

<强>更新
Sample App