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

投稿者プロフィール

林 晃
林 晃macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者
アールケー開発代表。macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者。ObjC/Swift/C++使い。豊富な開発実務経験を基に、教育コンテンツ開発、技術書執筆、技術指導、技術セミナー講師、企業内研修講師、行政・自治体職員研修講師も行います。

基礎から学ぶMetal


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

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

詳細

基礎から学ぶSwiftUI


「基礎から学ぶ SwiftUI」というタイトルの本を執筆しました。

SwiftUIの入門書です。

SwiftUIのコンセプトは「ユーザーインターフェイスを作るための最短パスを提供する」「一度学べば(Appleのプラットフォームの)どこにでも適用できる」です。

SwiftUIの概要から始まって、一つ一つのテクノロジートピックに注目しながらSwiftUIとは何か?どんなことができるのか?どのようなコードを書けば良いのかなどを丸々一冊使って解説しています。

詳細

関連記事

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

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

  3. Android StudioをMac上で試してみました

  4. Mac App Store版に乗り換え後の認識エラー?(解決)

  5. Mac Miniで minidlna を動かす

  6. iPhone用のお問い合わせページを作成しました

最近の著書

  1. 基礎から学ぶ SwiftUI

人気記事

最近の記事