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 ServerSpring 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 SocialRestlet FrameworkApache 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を実装するためのライブラリ。
FacebookTwitterなどのSPに対応。
SRestlet FrameworkのOAuthライブラリ。
(*)OAuth 2.0バージョンはjavadoc中に記載の参照先から。
JAX-RS(CXF内の、RESTfulサービス用のライブラリ)に含まれる。

 

という訳で、Javaのライブラリに限れば「定番」とまで言ってよいものは無さそう。あるいは、上記のいずれかのライブラリをベースに、自分でカスタマイズ&メンテナンスするという選択肢もアリのように思います。