![]() ![]() ![]() ![]() |
「訪問者の資格のコンフィグレーション」の説明に従い、WebLogic Portal Administration Console を使用して訪問者の資格ロールを作成します。また、ポータル アプリケーションで実行できる特定の実行時チェックがあり、これにより訪問者のロールに基づいてポータル内の訪問者のパスをカスタマイズできます。この章で説明する JSP タグを使用すると、ポータル アプリケーションで動的に認可チェックを実行できます。アクセス権限は、ユーザに割り当てられているロールに基づいて定義されます。
JSP タグの <auth:isAccessAllowed>
と <auth:isUserInRole>
で、ユーザのアクセス権限を判定することで、ポータル内のユーザのパスをカスタマイズできます。
JSP タグの <auth:isUserInRole>
は、実行時に現在のユーザのロールを評価するので、これを使用すると、アプリケーション リソースへのアクセスを選択的に認可できます。JSP タグの <auth:isAccessAllowed>
は、デフォルトでは、アプリケーション リソースに対する資格を詳細にチェックし、どの資格が利用できないか判定します。
<auth:isUserInRole>
タグを使用すると、実行時に現在のユーザのロールを評価できるので、アプリケーション リソースへのアクセスを選択的に認可できます。JSP にアクセスするユーザの認可を実行することで、タグにラップされているアプリケーション コンテンツの表示を制限できます。資格を付与されたポートレット内で使用した場合、複数のレベルの認可が可能です。
確認の対象となるロールは、ユーザの有効なロール セットと比較されます。WebLogic Portal Administration Console を使用して作成されたエンタープライズ アプリケーションおよび Web アプリケーション スコープの訪問者資格ロール、および WebLogic Server Administration Console で作成されたグローバル ロールが評価されます。また、ポータル リソース階層にマップされたロールを所有するロール マッピング プロバイダも評価されます。
注意 : | <auth:isUserInRole> の呼び出しごとに、現在の Web アプリケーションのすべての訪問者ロールが評価されます。したがって、ロール セットが大きい場合、パフォーマンスに影響します。計算済みロールのマップは要求に対して最大 1 回評価されますが、要求間ではキャッシュされません。 |
このタグの使用の詳細については、Javadoc を参照してください。
<auth:isAccessAllowed>
タグは、デフォルトでは、アプリケーション リソースに対する資格を詳細にチェックし、どの資格が利用できないか判定します。これらは、独自のセキュリティ ポリシーを作成した、アプリケーション定義の (非ポータル) リソースです。
このタグは、アプリケーション リソースへのアクセスを認可するためのチェックを実行時に行います。アクセスが許可されている場合、戻り値 id は true
に設定されます。アクセスが許可されていない場合、戻り値 id は false
に設定されて、タグの本体はスキップされます。
<auth:isAccessAllowed>
タグを JSP に追加して、資格を付与するリソースがこのタグで囲まれるようにし、適切なタグ属性を設定します。このタグの本体は空にできます。
次の表で「可」のある属性は、JSP タグが実行時に表示されるときに属性の値を評価できるものです。
注意 : | IsAccessAllowedTag クラスの詳細については、Javadoc を参照してください。 |
この例は、JSP 内のリンクの資格をチェックします。resourceId 属性値および id 属性値は、コードの前半で宣言されている変数から読み込まれます。
コード リスト 3-1 は、<auth:isAccessAllowed> を使用してロール ポリシーをチェックする方法を示しています。roleScope 属性値は HIERARCHICAL_ROLE_INHERITANCE に設定されているので、タグにより、リーフ ノードからリソース分類法の各レベルまで既存のロール ポリシーが検索されます。このリソースへのアクセスを許可するロールにユーザが属していない場合、ユーザにはリンクは表示されません。
<%@ taglib "http://www.bea.com/servers/p13n/tags/auth" prefix="auth" %>
...
<auth:isAccessAllowed resourceId="<%=resourceId%>" id="<%=evalResult%>"
roleScope="<%=EntitlementConstants.HIERARCHICAL_ROLE_INHERITANCE%>" >
<p>
<a href="HRpersonnel.jsp">Click here for secure personnel information.</a>
</auth:isAccessAllowed>
<auth:isAccessAllowed>
タグの代わりに、次のツールを使用できます。
com.bea.p13n.entitlements.servlets.jsp.taglib.IsAccessAllowedTag
クラスを直接操作します。詳細については、Javadoc
を参照してください。
![]() ![]() ![]() |