#长按上图识别二维码 下载 OSC 客户端参与活动#
本译文来自开源中国翻译频道,由 leoxu, 花间_拾零, Tony 协作翻译完成。
每一个 API 开发者都在寻找能更加安全的管理他们的应用程序的方法,而不用牺牲速度或者放弃新功能的实现。为此,我们最近更新了核心的 Stormpath 产品 —— 这是我们的 REST API , 它可以借助 Spring Boot 来使用。一直以来我们都会利用很多重要的效率工具,它们值得人们用来借助 Spring Boot 开发一个API。
许多团队都会发现要对其 API进行认证管理和访问控制有点困难,因此我们就想到要分享一些源自我们在进行迁移的过程中所积累的架构原则,让你能更轻松的管理你的 Spring Boot API。
注意: 下面我们会使用命令行工具 httpie (https://github.com/jkbrzt/httpie) 来进行示例的练习。
可以使用 @RestController (而不是简单的 @Controller) 来确保你是要返回一个Java 对象,而不是到一个 HTML 模板的引用。如下所示:
执行命令 : http -v localhost:8080
2. 利用 POJO 向 JSON 自动转换的便利
Spring Boot 会自动地为你将 POJO(plain old Java classes)转换成JSON!
执行命令 : http -v localhost:8080
不需对 Java 对象进行复杂的设置、配置或者初始化,自动绑定服务就能够对你的业务逻辑进行抽象。
这个示例利用了 Stormpath 来在你认证通过后返回一个个性化的问候语。要进行联系你首先需要设置一个 Stormpath 账户,入口在这里。如果你按照这里的指示将你的 Stormpath API Key 文件放到指定的位置 (~/.stormpath/apiKey.properties) ,就不需要再做其它的什么事情了!
启动应用并执行这个命令 :http -v localhost:8080
接下来我们需要进行认证,这样我们才可以进入到我们的示例,因此我们会联系使用 Stormpath 内置的 OAuth 2.0 功能来进行认证并获得一条个性化的信息。你要确保已经在管理员控制台为你的 Stormpath 应用程序创建了一个用户。想要详细了解 Java SDK 中 Stormpath 的 OAuth支持,可以看看我们的《Java 产品文档》。
做完之后,要保存这个访问令牌供我们的应用程序使用:
现在,让我们使用认证信息来再一次访问我们的应用程序:
现在,多亏了依赖注入的帮助,我们就可以得到来自控制器可以访问到的服务的个性化响应信息了。
Spring安全层在Spring应用上增加了授权过程,使得应用可以容易地决定谁可以访问,访问哪些内容. 安全层在用户组成员和细粒度的权限的基础上,使用声明式配置语法和注解来限制用户访问方法.
如果你有兴趣学习更多知识,我曾写过一篇相关教程
in-depth Stormpath + Spring Security tutorial
.。同时,我们有另外一个非常不错的教程
Spring Security + Spring Boot WebMVC app in our open-source Java SDK project
,带领你从零开始实现完整功能,教程文档可在此处找到.