AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

Stormpath 的 Java SDK 1.0 版发布了

  • 2016-09-07
  • 本文字数:2011 字

    阅读完需:约 7 分钟

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

2016-09-07 19:002662

评论

发布
暂无评论
发现更多内容

【简历优化】如何在简历中最大化体现出自己的学习能力?

王中阳Go

高效工作 面试 高效学习 简历 11月月更

Helm部署和体验jenkins

程序员欣宸

Kubernetes Helm jenkins 11月月更

什么是缓存击穿、缓存穿透、缓存雪崩?如何解决?

闫同学

redis 缓存 11月月更

计算机网络:局域网的基本概念和体系结构

timerring

计算机网络 局域网 11月月更

企业级业务架构设计:方法论与实践学习笔记二

程序员架构进阶

架构 业务架构 11月日更 11月月更

深入分析Java的序列化与反序列化

石臻臻的杂货铺

Java 11月月更

刨根问底 Redis, 面试过程真好使

蔡农曰

Java 编程 面试 后端

Java实现List去重的5种方式

共饮一杯无

Java List 11月月更

Spring 5(二)IOC容器

浅辄

Java Spring5 11月月更

Vue基础学习(六)

Studying_swz

Vue 11月月更

Python进阶(三十)Python3实现随机数

No Silver Bullet

Python 随机数 11月月更

Python进阶(三十一)往MySQL数据库里添加数据,update和insert效率分析

No Silver Bullet

Python MySQL 数据操作 11月月更

数据治理的核心:大数据开发平台

小鲸数据

大数据 数据开发 数据平台 数据开发平台 调度平台

Redhat持久化日志与实战练习

阿柠xn

Linux 运维 11月月更

Zebec 创始人Sam Thapaliya11月12日Twitter Space 发言内容回顾

股市老人

分布式系统设计理论之一致性哈希

闫同学

一致性哈希 分布式设计 11月月更

The Availability and Performance analytics of Sina Weibo comment

David

架构实战营

Java Web(八)JSP

浅辄

javaWeb jsp 11月月更

Set集合和其之类HashSet、LinkedHashSet

共饮一杯无

Java set 11月月更

Verilog代码的风格规范

芯动大师

Module Verilog 11月月更

第九期 - 模块六

wuli洋

Python进阶(三十三)Python获取并输出当前日期时间

No Silver Bullet

Python 日期处理 11月月更

深入浅出建造者模式-干货!

闫同学

设计模式 11月月更

List集合按照某个字段或者属性分组的两种方式

共饮一杯无

Java List 11月月更

抖音"凶猛"的幕后英雄,火山引擎DataTester累计做过150万次A/B测试

字节跳动数据平台

字节跳动 算法 AB实验 产品优化 实验科学

深入理解客户端篇之 Jedis

邱学喆

redis jedis客户端

探知数字化研发3 - 思维篇

薛飞

部署vue项目到Linux服务器

Studying_swz

Linux Vue 11月月更

Spring 5(一)概述

浅辄

Java Spring5 11月月更

架构误区系列4:volatile task

agnostic

延迟任务 领域建模

Stormpath的Java SDK 1.0版发布了_Java_Matt Raible_InfoQ精选文章