BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Stormpath的Java SDK 1.0版发布了

| 作者 Matt Raible 关注 11 他的粉丝 ,译者 夏雪 关注 0 他的粉丝 发布于 2016年9月8日. 估计阅读时间: 8 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

近期Stormpath发布了用户管理和认证的Java SDK 1.0版。Stormpath一般会针对Web和移动应用的认证、授权和用户管理的实现(其中包括开源实现)提供API,目标定位是一系列的语言和框架。它们是Apache认证的,托管于GitHub,他们的价目表表明针对开发者计划“永久免费”。

Stormpath的Java SDK提供了针对简单古老的servlet的集成,以及Spring、Spring Security 和Spring Boot的集成。如果要在Spring Boot 应用中集成Stormpath支持,你只需要增加一个stormpath-default-spring-boot-starter依赖。如果你使用的是Maven:

<dependency>
      <groupId>com.stormpath.spring</groupId>
      <artifactId>stormpath-default-spring-boot-starter</artifactId>
      <version>1.0.3</version>
</dependency>

或者如果你更喜欢用Gradle:

dependencies {
    compile 'com.stormpath.spring:stormpath-default-spring-boot-starter:1.0.3'
}

在这些修改之后,你的应用将有许多开箱即用的功能,包括登录、登出、注册、忘记密码和邮箱验证。你甚至可以配置社交登录或SAML(安全声明标记语言)支持,在Stormpath的仪表盘中直接配置即可使用。以下是登录和注册功能的截图:

如果你正在使用Spring Security,那么就需要一个Spring Security配置类来集成Spring Security。在增加这个类后,你就能以传统方式轻松地配置 Spring Security了。

import static com.stormpath.spring.config.StormpathWebSecurityConfigurer.stormpath;

@Configuration
public class SpringSecurityWebAppConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.apply(stormpath());
    }
}
    Stormpath的Java SDK 还提供了一个内容导航功能,有它就能够使用JavaScript客户端了。在接收到显式的application/json报头时它会返回一个JSON串,而不是返回由JSP或Thymeleaf 生成的HTML。为理解如何使用AngularJS来做这件事,可以查看他们的 Angular + Spring Boot + Stormpath 的示例应用。

伴随的测试套件 Stormpath Framework TCK 被用来验证所有SDK功能是一致的。它的测试是以Groovy语言用REST-assured写的,用来驱动应用并验证功能性。该JAVA SDK也有很多的测试是用Groovy写的,研究这两个开源项目能从中得到教学价值。

为对该版本有更多的了解,InfoQ专门采访了Stormpath开发人员传道者Micah Silverman。

InfoQ:你提供了针对Java的多种集成,对大多数流行的集成你有过统计吗?你是如何看待servlet的应用趋势的?

Micah Silverman在过去的90天里,有4.7%使用了servlet与Stormpath传输,它们部分使用了Java SDK。有68%的Java传输来自于Stormpath Spring Boot 集成变体(有和没有Spring Security),其中有51%的Java通信包括Stormpath Spring Security集成。

InfoQ:在StormpathJava SDK中最难实现的一部分是什么?

Silverman我认为最大的挑战是Stormpath Spring Security 集成。请求在通往响应的早期即冲击Spring Security,所以在没有重复代码的情况下实现同时具有和不具有Spring Security的功能非常棘手。

InfoQ:在1.0版本中,你们的什么特性是最值得关注的?

Silverman在1.0版本中,最值得注意的特性是依从于Stormpath Framework规范。除此之外,还使Java SDK和集成与其他Stormpath语言SDK保持一致,这使得我们现在可以在配置文件中指定内容导航了。这就很容易将单页应用(SPA)和Stormpath集成配合来用了,在这种情况下现代流行的内容导航规则是很有必要的。

InfoQ:你准备支持JSF/Java EE 8 MVC吗?

Silverman我们没有集成JSF或Java EE 8的明确计划。然而,这并不会妨碍开发人员结合Stormpath集成来发挥这些技术的优势。

InfoQ:Stormpath在自己构建的安全实现之上增加了什么?

SilvermanStormpath的专长是后端的安全敏感信息。这是个不小的任务,也正是我们作为一家公司要做的。所有SDK和跨语言的集成的目的使开发人员易于使用Stormpath,为此我们已经把“难啃的骨头”抽离了出来。对于Java来说尤其如此,我们针对它有6个主要集成:Shiro、Servlet、Spring WebMVC、Spring Security Spring WebMVC、Spring Boot WebMVC、Spring Security Spring Boot WebMVC。Java集成是完全模块化的,所以你可以混合和匹配任何Spring集成,而不仅限于以上指定的四个。

InfoQ:在具有像Spring SecurityJHipster之类已有工具的世界中,你适合在什么位置

Silverman我们有一个直至惯用的Spring表达式语言(比如使用Stormpath组的hasAuthority)的Spring Security的深度集成。虽然我们还没有一个技术路线的具体计划,但我们正在关注着大多数流行Java框架的集成,包括JHipster 和 Dropwizard。

查看英文原文Stormpath's Java SDK 1.0 Released

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

干啥用的 by n yuxiao

没太看懂

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT