今週、Stormpathはユーザ管理と認証のJava SDK バージョン1.0をリリースした。StormpathはWebとモバイルのアプリケーションで認証や認可を実装するために広くAPIを提供している。そこにはオープンソース実装を含んでおり、さまざまな言語やフレームワークを対象にしている。これはApacheライセンスであり、GitHubで管理されており、価格表は開発プランであれば永久に無料であることを表している。
StormpathのJava SDKは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'
}
こうした変更のあと、アプリケーションはログインやログアウト、登録、パスワード忘れやeメール検証を含む一連の機能がすぐに使えるようになる。Stormpathのダッシュボードにあるディレクトリを設定することでソーシャルログインやSAMLサポートさえ設定できる。以下はログインと登録の機能のスクリーンショットだ。
もしSpring Securityを使っているのなら、Stormpath統合を適用するために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クライントを使えるようにするコンテントネゴシエーションの機能を提供する。Accept:application/jsonヘッダがあるときに、HTML (JSPやThymeleafが生成する) を返却するよりむしろ、JSONを返却する。AngularJSとともにどのように動作するか見るために、Angular + Spring Boot + Stormpathサンプルアプリケーションを見てみよう。
ガイドのテストスイートであるStormpathフレームワーク TCKはすべてのSDKがまったく同様に機能するか検証するために使われる。そのテストはGroovyで書かれており、アプリケーションを動作させ機能を検証するためにREST保証を使っている。Java SDKはまたGroovyで書かれたテストを多数持っており、これら2つのオープンソースプロジェクトを改善することで理解した教育上の利点がある。
このリリースについてより学ぶために、InfoQはStormpathの開発エヴァンジェリストであるMicah Silverman氏にインタビューした。
InfoQ「あなたはJavaのためにいくつかの統合を提供しています。もっとも人気のある統合を示す統計を持っていますか?どのようにサーブレット利用の傾向を見ていますか?」
Micah Silverman氏「過去90日間で、サーブレット利用はJava SDKのある部分を使うStormpathのすべてのトラフィックのうち4.7%に相当します。Javaトラフィックの68%はStormpath Spring Boot統合変数の1つから生じています(Spring Securityの有無はあります)。Javaトラフィックの51%はStormpath Spring Security統合を含みます。」
InfoQ「StormpathのJava SDKにおいてもっとも難しかったところはどこですか?」
Silverman氏「私が思うに、もっともチャレンジだったところはStormpathとSpring Securityの統合です。リクエストはレスポンスへの過程において早期にSpring Securityに当たります。そのためSpring Securityがある、ないの両方で機能する実装はコードを重複させていませんがトリッキーになりました。」
InfoQ「1.0のリリースにおいてもっとも注目すべき機能は何ですか?」
Silverman氏「1.0のもっとも注目すべき機能はStormpathフレームワーク仕様への追従です。Java SDKと統合を他のStormpath言語のSDKと一致させるようにすることは別にして、私たちは今設定でコンテンツのナビゲーションルールを指定できるようにそうしました。これによってSPAと最新のナビゲーションルールが呼び出される場所であるStormpath統合を簡単に協調させられます。」
InfoQ「JSFやJava EE 8のMVCをサポートする予定はありますか?」
Silverman氏「JSFやJava EE 8の統合への明確な計画はありません。しかし、Stormpath統合とこれらの技術を利用する開発者を妨げるものは何もありません。」
InfoQ「Stormpathが自家製のセキュリティ実装の上に追加するものは何ですか?」
Silverman氏「Stormpathの専門的技術はバックエンドでの繊細な情報を守ることにあります。これは小さな作業ではなく、企業として取り組んでいることのすべてです。言語をまたがるすべてのSDKと統合の意図は、開発者がStormpathを使いやすくすることです。そこは私たちが難しい部分を取り除いたところです。これは6つの主要な統合があるJavaでとくに真実です。Shiro、Servlet、Spring WebMVC、Spring Security Spring WebMVC、Spring Boot WebMVC、Spring Security Spring Boot WebMVCの6つのことです。Java統合は完全にモジュール式です。そのため上記の特定の4つのものを超えて、Spring統合のどれかを組み合わせたり選択したりすることができます。」
InfoQ「Spring SecurityやJHipsterのような既存のツールと実世界ではどこでフィットしますか?」
Silverman氏「Spring Securityとは深い統合を私たちは持っています。StormpathグループとともにhasAuthority
のような慣用的なSpring Expression Languageの構造体に接続することまで下がっています。ロードマップにおける特定の計画はまだ持っていませんが、もっとも人気のあるJavaフレームワーク、JHipsterやDropwizardを含む、それらすべてへの統合を見据えています。」
Rate this Article
- Editor Review
- Chief Editor Action