Apache Shiroについて

業務外で作っているWebサービスで認証が必要になりました。開発環境はバックエンドがJavaサーブレット。フロントエンドはHTML5というか、JavaScript+HTMLです。最初は特にフレームワークなどは使用せず、自前で実装しようかと思ったのですが、色々なパターンの使い方を考えていくと、フレームワークを使った方がよいように思えてきたので、探してみると、「Apache Shiro」というのを見つけました。
Apache Shiroは、認証と承認という部分を扱ってくれるフレームワークで、比較的簡単に使えるAPIだとの説明です。ただ、今回、問題になってくるのは、ユーザー情報をどのように持つのか?という部分です。というのも、今回のWebサービスはデータベースにMongo DBを使っています。ところがフレームワークが対応しているのはLDAPやJDBCなどのRDB。Mongo DBはNOSQLなDBで、JDBC経由では接続できません。
何か方法がないかと、ドキュメントを読んでいくと、「Application Security With Apache Shiro」というドキュメントに次のような一文を見つけました。
引用元: Application Security With Apache Shiro ( http://www.infoq.com/articles/apache-shiro )

Shiro provides out-of-the-box Realms to connect to a number of security data sources (aka directories) such as LDAP, relational databases (JDBC), text configuration sources like INI and properties files, and more. You can plug-in your own Realm implementations to represent custom data sources if the default Realms do not meet your needs. Listing 4 below is an example of configuring Shiro (via INI) to use an LDAP directory as one of the application’s Realms.

つまり、標準で対応していなければ、カスタムRealmを作ればよい。RealmはApache Shiroにセキュリティ情報を格納しているところからデータを受け渡すためのもの。今回でいえば、Mongo DBのAPIを使って、Mongo DBのコレクションに入っている情報を取得するRealmを作ればよいということのようです。
これで認証処理実装の方向性が見えてきました。
 

関連記事

  1. iPhoneソーシャルゲーム開発の公式ページができました

  2. MultiTextConverterをNotary Serviceに対…

  3. 初めてのプール

  4. Nexus7とKindleを買ってきた

  5. Mac OS X 10.5.8上でのRKDetailDesignのプリ…

  6. 「改訂2版 基礎から学ぶiPhoneアプリ開発」の公式ページができまし…

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事

  1. 2020.10.21

    GitLabへの移行
  2. 基礎から学ぶ SwiftUI
  3. 基礎から学ぶ SwiftUI