SHINTAROH OHBA
shint****@bsol-*****
2011年 5月 10日 (火) 10:35:50 JST
はじめて投稿させて頂きます。 大場と申します。 現在、FESSのRESTインターフェイスとやり取りするSwingベースのクライアントを作っています。 ロールベース検索に関してお聞きしたい事があります。 下記に示す通り、リクエストパラメータによるロールベース検索を意図通りに動かす事ができませんでした。 一応、暫定でサーバー側のソースを変更しているのですが、そもそも的に自分の使い方(設定等)が間違っているのではないか、とも思っています。 もし、使用法等に誤りがあれば、ご指摘いただければ幸いです。 以上、よろしくお願い致します。 ohba (現象) リクエストパラメータによるロールベース検索が行われない。 詳細な設定内容は後述しますが、下記URLに記載の内容に従って設定を行いました。 使用しているバージョンは4.0です。 http://fess.sourceforge.jp/ja/articles/article-3.html role1というロールを設定後、下記URLのように問い合わせを行っても、fessRolesに設定したロールが無視されて、guestで検索されます。 http://localhost:8080/fess/search?query=MDB&fessRoles=role1 (原因と思われる所) http://localhost:8080/fess/search?query=MDB&fessRoles=role1 とした場合、 jp.sf.fess.helper.impl.RoleQueryHelperImpl#buildByParameter()の return decodedRoleList(parameter, encryptedParameterValue); 部分のparameterには、「role1」が入っていました。 その後呼ばれる decodedRoleList(parameter, encryptedParameterValue)では、 parameter.split(valueSeparator);(valueSeparatorは\n)した結果の要素[1]をロール設定値として処理しているため、 parameterが[role1]のようになっている場合に、定義が無視されているようです。 その結果として、ロールベース検索が上手く行われていないようでした。 そこで現在、暫定的に、 jp.sf.fess.helper.impl.RoleQueryHelperImpl#buildByParameter()の return decodedRoleList(parameter, encryptedParameterValue) を return decodedRoleList("\n" + parameter, encryptedParameterValue) の様にしています。 (具体的な設定内容) 1)tomcat-users.xml に [role1]というロールを追加 2)app.dicon の jp.sf.fess.helper.impl.RoleQueryHelperImpl 設定部分を下記に設定 <component name="roleQueryHelper" class="jp.sf.fess.helper.impl.RoleQueryHelperImpl"> <property name="parameterKey">"fessRoles"</property> <property name="encryptedParameterValue">false</property> <property name="defaultRoleList"> {"guest"} </property> </component> 3)FESS管理画面の「ロールの設定」で[role1]を登録 設定名:テスト 値:role1 4)ファイルシステムのクロール設定で、「ロール」に「テスト」を指定