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を作ればよいということのようです。
これで認証処理実装の方向性が見えてきました。
 

投稿者プロフィール

林 晃
林 晃アプリ開発者
アールケー開発代表。Appleプラットフォーム向けのアプリ開発が好きなアプリ開発者。アプリの受託開発、技術書執筆、技術指導・セミナー講師。3DCGコンテンツ作成にも取組中です。

基礎から学ぶARKit


「基礎から学ぶARKit」を執筆しました。本書はARKitを使ったARアプリの開発方法を解説した技術書です。

ARKitを使ってARアプリを作るときの流れや基本的なAPIの使い方などをサンプルアプリを作りながら学べます。

詳細

基礎から学ぶMetal


「基礎から学ぶMetal」を執筆しました。本書はMetalを使ってGPUプログラミングを行うための最初のステップを解説するMetalの解説書です。

私が初めてGPUプログラミングを行ったとき、どこから手をつけて、学んでいけば良いのか分からず呆然としました。もし、あのとき、これを教えてくれればという部分を解説しました。本書で解説している部分はMetalの基礎となる部分で、Metalを使うときに必ず触れることになる部分です。

詳細

関連記事

  1. お問い合わせフォームのリニューアル

  2. MultiTextConverterのSwiftで書き直しを始めました…

  3. VMware Fusion 4 でのLionのインストール方法

  4. Snow Leopard ServerとWindowsのファイル共有

  5. MSM 2019 in 原宿 のレポートページが公開されました

  6. OS X 10.4.11 (Tiger) へのGitのインストール

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事