2014-02-24 73 views
2

我正在GRAILS中为我的中学的房间调度构建决策支持工具。我正在使用Spring Security,我想要保护REST API。我找到了很少的信息来说明正确的方法。不过,我一直在寻找的Spring Security REST plugin使用安全REST插件保护REST API

文件是不是对我很清楚,没有任何人有使用这个插件的工作示例/教程?

关于如何实现这一点的建议将非常棒。

+0

您是否通过[序列图]不见了(http://alvarosanchez.github.io/grails-spring-security-rest/docs/guide/introduction.html) ?你是否一字一句地阅读整个文档?你有尝试过什么吗? – dmahapatro

+0

我发现的唯一文档是[here](http://alvarosanchez.github.io/grails-spring-security-rest/)。主要的问题是我不知道手动操作哪些步骤才能使插件工作,哪些步骤由插件自动执行。 @dmahapatro – thomasvdbossche

+0

如果您现在正在使用GORM存储并且正在使用1.3.0.RC版本,您只需要GORM相关配置。 – dmahapatro

回答

3

我只是为你读出顺序图。我正在使用这个插件和(AngularJS在客户端)的示例应用程序,并且即将发布(可能是今晚)。

步骤如下:

  • 使用任何HTTP方法的REST资源客户端请求。
  • 服务器响应客户端的请求与401(未经授权)。
  • 客户端(收到401时)将用户重定向到登录页面以提供用户名和密码。 (请记住Spring Security Core插件)
  • 用户提供用户名和密码。 (手段,客户应发出与用户信息的请求体/请求PARAM插件弹簧安全REST提供了POST请求击球/ API /登录)
  • 服务器在接收到用户的信息做4项任务:
    • 验证用户。
    • 生成一个令牌(默认情况下由Spring Security REST插件提供)。
    • 存储令牌(在memcahe或GORM指定的域类中)。
    • 将标记返回给被调用者(客户端)。
  • 在从服务器接收到生成的令牌后,客户端将其存储在任何本地存储中,并用于该特定用户的进一步API调用。
  • 每次API被击中任何资源,令牌在头中传递的X-Auth-Token(默认值),而不是通过每一次Basic Auth

因此,您最终将得到一个基于令牌的REST端点验证。 通过插件的FAQ获得更多答案。

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

我刚刚接触这个插件的基本功能的权利,但它具有灵活性来处理的不仅仅是生成令牌更多。例如,delegating auth to OAuth providers。只要我将它推送到github,我就会在这个答案中更新上述示例应用程序的链接。

UPDATE:
Sample App