![]() ![]() ![]() ![]() |
開発者は、BEA Workshop for WebLogic Platform を使用して、ユーザ プロファイルの追加や編集を行う JSP タグおよびコントロールを作成することができます。ユーザ プロファイルは、ユーザ名と、ユーザに関して収集および格納される追加のプロパティから構成されます。これらのプロパティを使用すると、ポータルでユーザが行う操作をパーソナライズできます。
プロパティは、個人データ、作業関連データ、場所を表すデータ、またはユーザを論理的に分類するその他のデータで構成できます。たとえば、BEA Workshop for WebLogic Platform では、性別、雇用日、電子メール アドレスなどのプロパティを格納する従業員というプロパティ セットを作成できます。
Workshop for WebLogic を使用して、プログラムによってユーザ プロファイルの作成およびプロファイルのデフォルトのプロパティ値の編集を行います。管理者は、プロファイルのプロパティ値を Administration Console で編集できます。詳細については、「ユーザ プロファイル プロパティの値の編集」を参照してください。
ユーザがポータルにログインするときに、ポータルはプロパティ値にアクセスし、設定したパーソナライゼーション ルールに基づいて、パーソナライズされたコンテンツ、電子メール、入力済みのフォーム、および割引にその値を適用できます。詳細については、『対話管理ガイド』を参照してください。
開発者は Workshop for WebLogic で以下を使用して、プログラムによってユーザ プロファイルのデフォルトのプロパティ値を作成および編集することができます。
createProfile
JSP タグを使用して、ユーザ プロファイルを追加するためのポータル JSP タグを作成します。その他の JSP タグを使用すると、ユーザ プロファイルの取得およびそのプロパティの追加と編集が可能になります。createProfile
アクションを使用して、ユーザ プロファイルを追加します。ユーザ プロバイダ コントロールのその他のアクションを使用すると、ユーザ プロファイルの取得およびそのプロパティの追加または編集が可能になります。プロファイル コントロールを使用してユーザ プロファイルを取得し、プロパティ コントロールを使用してプロパティを作業メモリに追加します。その後、Rules Executor コントロールを使用してユーザ プロファイルのプロパティの評価およびフィルタを行い、評価に応じたアクションを開始します。com.bea.p13n.usermgmt.profile.ProfileFactory
Java クラスと直接連携してユーザ プロファイルを作成します。ユーザ プロパティは、ProfileWrapper
オブジェクトを直接呼び出して変更できます。Java クラスの詳細については、「Javadoc」を参照してください。
ユーザ プロファイルは、使用できるすべてのユーザ プロパティ セットからのユーザのプロパティ値の集合です。ユーザ プロファイルにある個々のメタデータが、ユーザ プロパティと呼ばれます。ユーザ プロファイル プロパティ セットは、格納するプロパティを整理し、特定の目的を持つプロパティ グループに名前を付けるための便利な方法を提供します。プロパティを作成し、パーソナライゼーション、委託管理、または訪問者の資格に関するルールの定義に使用することができます。
ユーザ プロパティは、ユーザの電話番号や電子メール アドレスなどの静的に定義されるプロパティから、ユーザの Web サイトのトラッキング情報などの動的に作成され、維持されるプロパティまで多岐にわたります。「パーソナル」というプロパティ セットには、年齢、性別、結婚歴、住所などのプロパティを含めることができます。「嗜好」という別のプロパティ セットには、趣味、好きな色、興味のあるニュースなどのプロパティを含めることができます。
Workshop for WebLogic で、ユーザ プロファイルの作成およびプロファイルのデフォルト値の編集を行います。プロファイルの値は、Workshop for WebLogic または Administration Console で編集できます。
WebLogic Portal には、共通のプロパティを持つ、CustomerProperties.usr
というデフォルトのユーザ プロファイル プロパティ セットが用意されています。
注意 : | アプリケーション定義のプロパティ セットを作成し、ユーザまたはグループ以外のエンティティのプロファイル データを格納することもできます。これらのエンティティには、コミュニティおよび WSRP (Web Services for Remote Portlets)、またはアプリケーションのプログラマによって作成されたカスタム エンティティが含まれます。このタイプのプロパティ セットの作成手順については、『対話管理ガイド』を参照してください。 |
WebLogic Workshop では、ユーザ プロファイルおよびプロパティ セットを作成することができます。プロファイルのデフォルト値は、Workshop for WebLogic または Administration Console で編集できます。
ユーザ プロファイルのプロパティ セットを作成するには、以下の手順を実行します。
data\src\userprofiles
] フォルダを右クリックし、[新規|その他] を選択します。ヒント : | メニューをカスタマイズして、[新規] メニューの選択肢として [プロパティ セット] を表示することができます。詳細については、『ポータル開発ガイド』を参照してください。 |
.usr
ファイル拡張子を保持します。たとえば、SalesRegion.usr となります。
「ユーザ プロファイル プロパティ セットの作成」にある手順に従ってプロパティ セットを作成したら、プロファイルにプロパティを追加してユーザ情報を取得することができます。
ユーザ プロファイルのプロパティ セットにプロパティを追加するには、以下の手順を実行します。
図 5-2 は、プロパティ セット用のプロパティ タイプを示します。
java.sql.Timestamp
にします。選択したデータ型によって、[値] フィールドを編集する際のダイアログ ボックスの表示が異なります。たとえば、Boolean データ型のプロパティは自動的に単値かつ制限付きに設定されます。[データ型] を編集するとデータ型が変更されるため、[値] フィールドに入力されていた値は削除されます。
図 5-3 は、多値かつ制限付きタイプに 3 つの販売地域 (Americas、APAC、および EMEA) を反映させる方法を示しています。この販売地域プロパティを使用して、パーソナライズされたコンテンツを持つ販売員を対象とすることができます。
注意 : | [データ型]、[選択モード]、[値の範囲] フィールドに対して変更を加えると、使用可能な値の数が変更されるため、[値] フィールドに入力されている値がすべて置き換わります。 |
[値] フィールドを使用して制限付きタイプの値を入力するか、制限なしタイプのデフォルト値を設定します。省略記号アイコン ([...]) をクリックして値を入力します ([値の範囲] フィールドで [制限付き] を選択した場合は、表示される [プロパティ値の入力] ダイアログ ボックスに値を入力し、入力するたびに [追加] をクリックします。値をすべて入力したら、[OK] をクリックします。[値の範囲] フィールドで [制限なし] を選択した場合は、[プロパティ値の入力] ダイアログ ボックスに値を入力し、[OK] をクリックします。[データ型]、[選択モード]、または [値の範囲] を変更すると、フィールドに入力された値はすべて削除されます)。
図 5-4 のように、プロパティ エディタに入力した値は、ユーザ プロファイル エディタに表示されます。
警告 : | プロパティ コントロールを使用して、プログラムによってプロパティを作成および管理することもできますが、コントロールによって作成されたプロパティは Administration Console には表示されません。これらのプロパティは、プログラムによって変更および更新する必要があります。 |
Workshop for WebLogic を使用して、ユーザ プロファイルおよびプロファイルのデフォルト値を作成できます。プロファイルの値は、Workshop for WebLogic または Administration Console で編集できます。Administration Console でプロパティ セットの値を編集する手順については、「ユーザ プロファイル プロパティの値の編集」を参照してください。
開発者は、Workshop for WebLogic のユーザ プロファイル エディタを使用して、ユーザ プロファイルの作成およびプロファイルのプロパティの追加を行います。その後、各ユーザ プロファイルに含まれるプロパティ値およびそのデフォルト値を編集できます。
Workshop for WebLogic でプロパティおよびその値を変更するには、以下の手順を実行します。
ヒント : | プロパティ値は Administration Console で編集できます。 |
<profile:getProperty>
JSP タグは、特定のプロパティ セットのプロパティ値を取得します。<profile:setProperty>
JSP タグは、セッションの現在のプロファイルまたは匿名ユーザ プロファイルのいずれかのプロパティ値を更新します。
通常は、<profile:getProfile>
タグの呼び出し後に <profile:getProperty>
タグを使用して、セッションが使用するプロファイルを取得します。<profile:getprofile>
JSP タグは、ユーザ プロファイルおよびそのプロパティを取得します。<profile:getProperty>
および <profile:setProperty>
JSP を使用することで、開発者は多数のユーザのプロパティを取得し、迅速に編集することができます。<profile:getProperty>
タグの使用後に <profile:getProfile>
タグを使用しない場合は、匿名ユーザ プロファイルから特定のプロパティ値が取得されます。
Java クラスの詳細については、「Javadoc」を参照してください。
コード リスト 5-1 のコード サンプルに示されているように、ページ フローで <profile:getProfile>
JSP タグを使用して、認証済みユーザ プロファイルを取得することができます。
<%@ page import="com.bea.p13n.usermgmt.SessionHelper"%>
<%@ taglib uri="http://www.bea.com/servers/p13n/tags/usermanagement"
prefix="profile"%>
<%@ taglib uri="netui-tags-databinding.tld" prefix="netui-data"%>
<%@ taglib uri="netui-tags-html.tld" prefix="netui"%>
Profile is: [<code><%= SessionHelper.getProfile(request) %></code>]<br>
<%-- このタグは、ユーザが認証済みの場合に機能する。
<profile:getProfile profileKey="<%=request.getUserPrincipal().getName()%>"
profileId="profile"/>
Profile is: [<code><%= profile %></code>]<br>
<%-- 通常は、JSP ではなくページ フローの中でこの処理を行う。--%>
<netui-data:declareControl controlId="profileControl"
type="com.bea.p13n.controls.profile.UserProfileControl"/>
<netui-data:callControl resultId="getProfileFromRequestResult"
controlId="profileControl" method="getProfileFromRequest">
<netui-data:methodParameter
value="{request}"></netui-data:methodParameter>
</netui-data:callControl>
Profile is: [<code><netui:label value="
{pageContext.getProfileFromRequestResult}"></netui:label> </code>]<br>
コード リスト 5-2 のコード サンプルに示されているように、ユーザが登録済みの場合は、セッションを参照せずにそのユーザのプロファイルを取得することができます。セッション オブジェクトへのアクセス権がない場合は、この方法が便利です。
import com.bea.p13n.usermgmt.profile.ProfileFactory;
import com.bea.p13n.usermgmt.profile.ProfileNotFoundException;
import com.bea.p13n.usermgmt.profile.ProfileWrapper;
import java.rmi.RemoteException;
public class MyHelper
{
public static String helperMethod(String username)
{
try
{
ProfileWrapper profile =
ProfileFactory.getProfile(username,null);
// ここで何らかの処理を行う
return profile.toString();
}
catch (RemoteException ex)
{
}
catch (ProfileNotFoundException ex)
{
}
return null;
}
匿名ユーザおよび追跡された匿名ユーザの場合は、セッションからプロファイルを取得する必要があります。匿名プロファイルには ID がありません。追跡された匿名プロファイルには ID がありますが、認証に使用できる有効なものではありません。ユーザのプロファイル タイプに応じて、安全にユーザの ID を取得する方法については、コード リスト 5-3 を参照してください。このコード サンプルでは、現在の ProfileWrapper
を取得し、ラッパーに関連するユーザ名を取得します。
<%@ page import="com.bea.p13n.usermgmt.SessionHelper"%>
Profile Id is: [<code><%= SessionHelper.getUserId(request) %></code>]<br>
開発者は、プロパティ コントロールの getProperty
アクションおよび setProperty
アクションを使用して、ユーザによるプロパティ セットのプロパティ値の取得、およびセッションの現在のプロファイルまたは匿名ユーザ プロファイルのいずれかのプロパティ値の更新を許可します。
警告 : | このコントロールによって作成されたプロパティは、WebLogic Portal Administration Console には表示されません。これらのプロパティは、プログラムを使用して編集および更新する必要があります。 |
プロパティ コントロールおよびそのプロパティの使用の詳細については、「コントロールの Javadoc」を参照してください。
コード リスト 5-4 は、プロパティ コントロールの setProperty
アクションを使用して ProfileWrapper
を編集する方法を示しています。コード サンプルでは、ユーザが好みの色を設定できるようにするために、コントロールを使用してフォームを表示するページ フロー (および関連する JSP) の例を示します。この例では、ユーザ プロファイル プロパティ セットのファイルである Generalnfo.usr
が data プロジェクトの \userprofiles
フォルダに存在している必要があります。また、単値、制限付きタイプで、テキスト プロパティ FavoriteColor が定義されている必要があります。詳細については、Workshop for WebLogic のヘルプを参照してください。
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="netui-tags-databinding.tld" prefix="netui-data"%>
<%@ taglib uri="netui-tags-html.tld" prefix="netui"%>
<%@ taglib uri="netui-tags-template.tld" prefix="netui-template"%>
<netui:html>
<body>
<netui:form action="setColor">
<table>
<tr valign="top">
<td>Favorite Color:</td>
<td>
<netui:select dataSource="{actionForm.color}"
defaultValue="{pageFlow.usersColor}"
optionsDataSource="{pageFlow.possibleColors}">
</netui:select>
</td>
</tr>
</table>
<br/>
<netui:button value="Set Color" type="submit"/>
</netui:form>
</body>
</netui.html>
開発者は、ProfileWrapper
オブジェクトを直接呼び出すことによって、ユーザ プロファイル プロパティの値を変更することができます。詳細については、「Javadoc」を参照してください。
Workshop for WebLogic を使用すると、プロパティ セットから個々のプロパティを削除したり、プロパティ セット全体を削除することができます。
プロパティ セットから個々のプロパティを削除するには、以下の手順を実行します。
また、ページ フローのプロパティ コントロールで <profile:removeProperty>
JSP タグまたは removeProperty
アクションを使用すると、既存のプロパティまたはユーザのプロファイルを削除することができます。詳細については、「Javadoc」を参照してください。
UUP を作成して外部ユーザまたはグループ プロパティにアクセスしている場合は、これらのプロパティを使用して、パーソナライゼーション、委託管理、または訪問者の資格に関するルールを定義することができます。
外部ユーザ ストア (たとえば、openLDAP サーバ) のプロパティにアクセスするための UUP を作成後、これらの外部プロパティにアクセスするには、WebLogic Portal の JSP タグ、コントロール、または API を使用する必要があります。これらの外部プロパティは、Administration Console ではまだアクセスすることができません。
パーソナライゼーション、委託管理、または訪問者の資格に関するルールの定義にこれらのプロパティを使用する場合は、Administration Console にこれらの外部プロパティを表示する必要があります。
注意 : | 外部ユーザ ストアから表示したプロパティが読み込み専用の場合は、Administration Console でこれらのプロパティを更新することができません。これらのプロパティを書き込み可能にするには、カスタム UUP を書き込み可能にする必要があります。 |
PropertyMapping
の名前と一致させる必要があります。プロパティ セットの名前を検索するには、以下の手順を実行します。META-INF/p13n-profile-config.xml
ファイルを開きます。<!-- User Profile Manager -->
セクションで、以下のような外部ユーザ ストア用の名前エントリを探します。<property=adapter>
<name>MyLdapUUP</name>
<property-mapping>MyExternalPropertySet</property-mapping>
<ejb-jndi>my_uup.jar#ExternalEntityPropertyManager</ejb.jndi>
</property-adapter>
property-adapter
行の下の名前が、新しいプロパティ セットに使用する名前です。名前は、大文字と小文字が区別されます。たとえば、この 2 つの例では、プロパティ セットに ldap.usr
または MyExternalStore.usr
という名前が付けられます。
newldap.usr
という名前を付けます。 注意 : | ポータル アプリケーションをプロダクション環境にデプロイした後で、Workshop for WebLogic でユーザ プロファイルのプロパティを変更した場合、変更を実行中のサーバに移行する必要があります。詳細については、『プロダクション業務ガイド』を参照してください。 |
![]() ![]() ![]() |