0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ログインユーザー情報の確認 - 開発者向けのニッチな機能

Last updated at Posted at 2024-12-11

はじめに

Yellowfin コンテンツを開発する際、ログインユーザーを切り替えながら、各ユーザーに適したアクセスフィルターが設定されているか否かなど、確認しながら開発することも多いですよね。
そんな時に便利な Java API が追加されました。

取得できる情報

integration 名前空間の下から、ログインユーザー情報を取得できるメソッドを呼び出すことができます。
具体的には、以下のような情報を返すメソッドがそろっています。

取得できる情報
ログインの有無
氏名
ロール
クライアント組織
クライアント参照ID
OS種類
カスタムパラメーター
利用可能なツールバー
国・地域
ゲストユーザーでアクセス

サンプルコード

サンプルコードを介して説明します。

下記サンプルコードでは、ブラウザからログインしているユーザーがいれば、ログインユーザーの情報を表示します。
ログインユーザーがいなければ、ログインしていない旨が表示されます。
取得できる情報の詳細は、後ほど動作を確認しながら説明します。

loginUserInfo.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.hof.api.integration.IntegrationAPI"%>
<%@ page import="com.hof.api.integration.IntegrationInfo"%>
<%@ page import="com.hof.util.*, java.util.*, java.text.*" %> 
<%@ page import="com.hof.web.form.*" %>
<%@ page import="com.hof.mi.web.service.*" %>
<% IntegrationInfo info = new IntegrationAPI().getIntegrationInfo(); %>

<H1>ログインユーザー情報 (バージョン <%= info.getVersion() %>)</H1>
<% if (info.isLoggedOn()) { %>
<BR>氏名: <%= info.getSessionInfo().getPerson().getFullName() %>
<BR>ロール: <%= info.getSessionInfo().getPerson().getRoleName() %>
<BR>組織: <%= info.getSessionInfo().getOrg().getOrgName() %>
<BR>クライアント組織参照ID: <%= info.getSessionInfo().getOrg().getOrgRefId() %>
<BR>OS: <%= info.getBrowserInfo().getOperatingSystem() %>
<BR>ツールバーオプション: <%= info.getToolbar().getTopLevelEntities() %>
<BR>国・地域: <%= info.getLocale().getDisplayCountry() %>
<BR>ゲストユーザー: <%= info.isLoggedOnAsGuest() %>
<% } else { %>
<BR> ログインしていません
<% } %>

動作確認

先のサンプル loginUserInfo.jsp を (yellowfin)/appserver/webapps/ROOT/ 配下に置いて動作を確認します。

Windows 11 の Chrome から、Yellowfin (http://yellowfin-server:9140) に下記ユーザーでログインします。

Yellowfin 設定項目 設定値
トビー
ロバーツ
ロール Consumer & Collaborator
優先言語 English (United Kingdom)
クライアント組織 ボルダー&リード (001)

image.png

Yellowfin にログイン中のChrome に新規でタブを開き、http://yellowfin-server:9140/loginUserInfo.jsp にアクセスすると、下記のような情報が表示されます。

image.png

おおよそどのような情報が取得されているかは、ブラウザの表示内容を見れば分かるかと思いますが、念のため各メソッドが表示する情報は以下の通りです。

メソッド 情報
getFullName() プロファイルの姓名
getRoleName() 割り当てられたロール
getOrgName() ログイン先のクライアント組織
getOrgRefId() ログイン先のクライアント参照ID
getOperatingSystem() 使用中のOS
getTopLevelEntities() 使用可能なツールバー
getDisplayCountry() 優先言語内に含まれる国・地域
isLoggedOnAsGuest() ゲストユーザーか否か

今度は、Firefox からゲストユーザーで、Yellowfin のコンテンツにアクセスします。

image.png

ゲストユーザーはログイン無してコンテンツにアクセスするため、ログインユーザーに関する情報は、一様に Guest となります。
一方で、isLoggedOnAsGuest() メソッドが true を返します。

image.png

最後に

開発時に、ブラウザを複数種類上げて、ユーザーを切り替えながら動作確認をするようなこともあるかと思います。そんな時、どのユーザーでアクセスしているかを簡易的に確認できる機能として活用いただけるかと思います。
具体的な用途としては、現状では開発環境での動作確認などが想定されます。

では皆様、良いデータ分析を‼

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?