Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Fessで作るApache Solrベースの検索サーバー
~ ロールベース検索編

部門別や役職別などに検索してみよう!

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/12/16 14:00

 前回のモバイル編では、Fessを用いてどのように携帯端末向け検索システムを構築するかをご紹介しました。本記事ではFessの特徴的な機能の一つでもあるロールベース検索機能についてご紹介します。

目次

はじめに

 前回のモバイル編では、Fessを用いてどのように携帯端末向け検索システムを構築するかをご紹介しました。本記事ではFessの特徴的な機能の一つでもあるロールベース検索機能についてご紹介します。

 本記事ではFess 4.0.0 betaを利用して説明します。Fessの構築方法については導入編を参照してください。

対象読者

  • ポータルサイトなどの認証があるシステムで検索システムを構築してみたい方
  • 閲覧権限ごとに検索する環境を構築したい方

必要な環境

 この記事の内容に関しては次の環境で、動作確認を行っています。

  • CentOS 5.5
  • JDK 1.6.0_22

ロールベース検索

 Fessのロールベース検索とは、任意の認証システムで認証されたユーザーの認証情報を元に検索結果を出し分ける機能です。 例えば、営業部ロールを持つ営業担当者Aは検索結果に営業部ロールの情報が表示されるが、営業部ロールを持たない技術担当者Bは検索してもそれが表示されません。 この機能を利用することで、ポータルやシングルサインオン環境でログインしているユーザーの所属する部門別や役職別などに検索を実現することができます。

 Fessのロールベース検索ではロール情報を以下の場所から取得できます。

  1. リクエストパラメータ
  2. リクエストヘッダー
  3. クッキー
  4. J2EEの認証情報

 利用方法としては、ポータルサーバーやエージェント型シングルサインオンシステムでは認証時にFessの稼働しているドメインとパスに対してクッキーで認証情報を保存することで、ロール情報をFessに渡すことができます。

 また、リバースプロキシ型シングルサインオンシステムではFessへのアクセス時にリクエストパラメータやリクエストヘッダーに認証情報を付加することで、Fessでロール情報を取得することができます。

 このようにさまざまな認証システムと連携することで、ユーザーごとに検索結果を出し分けることができます。

 独自の認証システムを運用しているような場合は、jp.sf.fess.helper.RoleQueryHelperインターフェイスを実装してクラスを用意することで対応することができます。作成したクラスは「webapps/fess/WEB-INF/classes」などのクラスパスが通っている場所に配置して、「webapps/fess/WEB-INF/classes/app.dicon」でjp.sf.fess.helper.impl.RoleQueryHelperImplに代わって指定します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 菅谷 信介(スガヤ シンスケ)

    N2SM, Inc.にソフトウェア・アーキテクトとして勤務。 Apache Portalsにて、コミッター兼PMCとして活動。その他、Seasar Projectなどのオープンソースプロジェクトでコミッターとしても活動。オープンソース関連の活動をブログやTwitterに投稿。

バックナンバー

連載:Fessで作るApache Solrベースの全文検索サーバー
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5