Stormpath的Java SDK 1.0版发布了

近期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:

\\
\u0026lt;dependency\u0026gt;\      \u0026lt;groupId\u0026gt;com.stormpath.spring\u0026lt;/groupId\u0026gt;\      \u0026lt;artifactId\u0026gt;stormpath-default-spring-boot-starter\u0026lt;/artifactId\u0026gt;\      \u0026lt;version\u0026gt;1.0.3\u0026lt;/version\u0026gt;\\u0026lt;/dependency\u0026gt;
\\

或者如果你更喜欢用Gradle:

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

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

\\

Stormpath的Java SDK 1.0版发布了

\\

Stormpath的Java SDK 1.0版发布了

\\

如果你正在使用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());\    }\}\
\\
  1. 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