OAuth 2.0のJavaライブラリに何を選んだらよいか?
OAuth 2.0のConsumerやSPを実装するにあたり、使えそうなライブラリがないか調べてみました。
対象はOAuth 2.0本家サイトで挙げられているライブラリ群で、私がJavaエンジニアである都合上言語はJava限定にさせてもらってます。
結論から言うと、SpringやRestletといったフレームワーク依存のライブラリが多く、汎用性のよいライブラリはなかなか無さそうな感じです。
また、なるべくRFCに近い仕様に準拠しているものがほしいとなると、draft 10対応のものとかはちょっとつらそうです。draft 10とRFCにどのくらいの差があるのかは調べてみないといけませんが。
※ 調査日: 2013/08/13
Apache Oltu (旧Apache Amber) | Apis Authorization Server | Spring Security for OAuth | |
---|---|---|---|
Consumer用API | ✔ | ✔ | |
SP用API | ✔ | ✔ | ✔ |
最新バージョン (安定版) |
0.22 | 1.3.3 | 3.19 |
↑のリリース日 | 不明 | 2013/8/5 | 2012/11/1 |
対応するAuth2.0仕様のバージョン | draft 10 | draft 31 | draft 31 |
ライセンス形態 | Apache License, ver. 2.0 | 不明 | Apache License, ver. 2.0 |
特記事項 | SNAPSHOTの最新版は2013/3/25に公開。現在はプロジェクトの活動は下火。 OpenID Connectのライブラリ開発への移行が宣言されている。 |
SP用のライブラリ。現在でも活発に開発が続けられている。 開発元のOpenContextAppsはWordPressの開発なども行なっている組織らしい。 |
Spring FrameworkのOAuthライブラリ。 |
Spring Social | Restlet Framework | Apache CXF | |
---|---|---|---|
Consumer用API | ✔ | ✔ | |
SP用API" | ✔ | ✔ | |
最新バージョン (安定版) |
for Twitter: 1.0.5 for Facebook: 1.0.3 |
2.1.2 | 2.7.6 |
↑のリリース日 | 2013/7.5 | 2013/2/28 | 2013/5/15 |
対応するAuth2.0仕様のバージョン | - | draft 10(*) | 不明 |
ライセンス形態 | Apache License, ver. 2.0 | 以下のいずれかに従えばよい? Apache license ver. 2.0 LGPL license ver. 3.0 LGPL license ver. 2.1 CDDL license ver. 1.0 EPL license ver. 1.0 |
Apache License, ver. 2.0 |
特記事項 | SP毎の方言に対応したConsumerを実装するためのライブラリ。 Facebook、TwitterなどのSPに対応。 |
SRestlet FrameworkのOAuthライブラリ。 (*)OAuth 2.0バージョンはjavadoc中に記載の参照先から。 |
JAX-RS(CXF内の、RESTfulサービス用のライブラリ)に含まれる。 |
という訳で、Javaのライブラリに限れば「定番」とまで言ってよいものは無さそう。あるいは、上記のいずれかのライブラリをベースに、自分でカスタマイズ&メンテナンスするという選択肢もアリのように思います。