Fessのv2 APIで独自の検索画面を作っている場合は、画面の初期設定を取得するリクエストと、利用者のお気に入りや履歴を扱うリクエストを分けて確認すると、認証状態ごとの違いが分かります。Fess 15.10に向けた開発で、画面の言語タグと利用者コードの扱いが修正されました。アクセストークンでテーマ設定を取得する変更は確認時点で提案段階です。
テーマ設定を取得する
GET /api/v2/ui/config の theme_settings には、管理画面の「システム」→「全般」→「テーマ設定」の内容が入ります。 login.required の初期値は false です。 true にした環境でもエンドポイント自体は呼び出せますが、ゲストにはテーマ設定として空のオブジェクト {} が返ります。
提案中の変更では、ログインセッションを持たないクライアントも、登録済みで有効期限内のFessアクセストークンを Authorization: Bearer … で送ればテーマ設定を取得できます。トークンが無効または期限切れの呼び出しは、テーマ設定の判定ではゲストとして扱われます。対応ビルドで確認する際は、管理画面に値を1件入れたうえで、セッションあり・有効なトークンのみ・期限切れ・どちらもなしの応答を比較します。
お気に入りと履歴はログインセッションで扱う
マージ済みの変更では、ログインユーザーのものと判定した userCode を未ログインのリクエストがパラメーターやCookieで送っても、Fessはそのコードを利用者の識別に使いません。ログイン中の利用者はセッションから識別され、ゲストは匿名利用者向けのIDで扱われます。ユーザーごとのお気に入りや履歴を引き継ぐ画面では、ログイン時に得たコードを別の匿名リクエストに渡す実装から、ログインセッションを維持する実装に切り替えます。テーマ設定を取得できるトークンで、利用者のログインセッションが作られるわけではありません。
表示言語のタグをそのまま使う
Tomcat 11.0.27で Accept-Language: sr-Latn などを受けたとき、 ui_locale が sr-x-lvariant-LATN になるケースも修正されています。セッションに保存したロケールも対象です。画面で言語を切り替える場合は、セッションに別の言語が保存されていない状態で sr-Latn や zh-Hant-TW を送り、表記体系を含むタグが返ることを確認します。
関連PR
- 表示言語タグの補正 Fess #3745
- ログインユーザーの利用者コードをセッションから取得 Fess #3748
- 有効なトークンへのテーマ設定の返却を提案 Fess #3749
- 15.10のAPI変更を移行ガイドに追記する提案 fess-docs #632