ロールベース検索の実行
設定が一通り完了したので、Fessを起動してください。
登録ユーザーの確認
今回の設定でadmin、taro、hanakoの3つユーザーでFessにログインできる状態になっています。 順にログインできることを確認してください。
http://localhost:8080/fess/admin/にアクセスして、adminユーザーでログインすると通常通り管理画面が表示されます。
次にadminユーザーをログアウトして、再度http://localhost:8080/fess/admin/にアクセスして、taroとhanakoユーザーでログインしてください。
ログインが成功すると、http://localhost:8080/fess/の検索画面が表示されます。ログアウトするときは、http://localhost:8080/fess/admin/にアクセスして[ログアウト]ボタンをクリックします。

ロールの作成
adminユーザーでログインして、左側のメニューの[ロール]をクリックしてロール一覧を表示します。 今回は次の3つのロールを作成してください。
| ロール名 | 値 |
| デフォルト | default |
| 営業部 | sales |
| 技術部 | eng |
クロール設定の追加
クロール対象を登録します。今回は営業部ロールのユーザーはhttp://www.n2sm.net/だけを検索でき、技術部ロールのユーザーはhttp://fess.sourceforge.jp/だけを検索できるようにします。
これらのクロール設定を登録するため、左側のメニューの[ウェブ]をクリックしてウェブクロール設定一覧を表示します。 [新規作成] をクリックして、ウェブクロール設定を作成してください。
まず、営業部用にhttp://www.n2sm.net/へのクロール設定として[ロール]項目に営業部を選択して作成します。
次にhttp://fess.sourceforge.jp/のクロール設定でロールに技術部を選択して作成します。

クロールの開始
クロール設定登録後、左側のメニューの[システム設定]をクリックして、システム設定画面で[開始]ボタンをクリックして、クロールを開始します。クロールが完了するまでしばらく待ちます。
検索
クロール完了後、http://localhost:8080/fess/にアクセスして、ログインしていない状態で「fess」などの単語を検索して、検索結果が表示されないことを確認してください。
次にtaroユーザーでログインして、同様に検索してください。taroユーザーはsalesロールを持つため、http://www.n2sm.net/の検索結果だけが表示されます。

taroユーザーをログアウトして、hanakoユーザーでログインしてください。先ほどと同様に検索すると、hanakoユーザーはengロールを持つので、http://fess.sourceforge.jp/の検索結果だけが表示されます。

まとめ
Fessのセキュリティー機能の一つであるロールベース検索についてご紹介しました。J2EEの認証情報を用いたロールベース検索を中心に説明しましたが、Fessへの認証情報の受け渡しは汎用的な実装なのでさまざまな認証システムに対応できると思います。
ユーザーの属性ごとに検索結果を出し分けることができるので、社内ポータルサイトや共有フォルダなどの閲覧権限ごとに検索が必要なシステムも実現できます。
次回は、Fessの提供しているREST APIについてご紹介します。
参考資料
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Fessで作るApache Solrベースの全文検索サーバー連載記事一覧
-
- Fessで作るApache Solrベースの検索サーバー ~ REST API編
- Fessで作るApache Solrベースの検索サーバー ~ ロールベース検索編
- Fessで作るApache Solrベースの検索サーバー ~ モバイル編
- この記事の著者
-
菅谷 信介(スガヤ シンスケ)
N2SM, Inc.にソフトウェア・アーキテクトとして勤務。Apache Portalsにて、コミッター兼PMCとして活動。その他、Seasar Projectなどのオープンソースプロジェクトでコミッターとしても活動。オープンソース関連の活動をブログやTwitterに投稿。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
