APEX_CUSTOM_AUTH
パッケージを使用すると、認証およびセッション管理に関連する様々な操作を実行できます。
このセクションの構成は次のとおりです。
このファンクションは、アプリケーション内のページ・レベル・アイテムの存在を確認します。このファンクションでは、パラメータp_item_name
が必要です。このファンクションはブール値(trueまたはfalse)を戻します。
構文
FUNCTION APPLICATION_PAGE_ITEM_EXISTS( p_item_name IN VARCHAR2) RETURN BOOLEAN;
このファンクションは、カレント・ページの認証属性がパブリック・ページに設定されているかどうかを確認し、ブール値(trueまたはfalse)を戻します。
参照: Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイドの「ページ属性の編集」 |
構文
FUNCTION CURRENT_PAGE_IS_PUBLIC RETURN BOOLEAN;
このプロシージャは、SET_USER
およびSET_SESSION_ID
プロシージャを組み合せて、1回のコールに結合します。
構文
PROCEDURE DEFINE_USER_SESSION( p_user IN VARCHAR2) p_session_id IN NUMBER);
このプロシージャは、指定したアプリケーションのカレント認証スキームで使用されるセッションCookieのプロパティを取得します。これらのプロパティは、認証スキーム属性を表示することによって、アプリケーション・ビルダーに直接表示できます。
構文
APEX_CUSTOM_AUTH.GET_COOKIE_PROPS( p_app_id IN NUMBER, p_cookie_name OUT VARCHAR2, p_cookie_path OUT VARCHAR2, p_cookie_domain OUT VARCHAR2);
パラメータ
表5-1に、GET_COOKIE_PROPS
プロシージャで使用可能なパラメータを示します。
表5-1 GET_COOKIE_PROPSのパラメータ
パラメータ | 説明 |
---|---|
|
現行の作業領域のアプリケーションIDです。 |
|
Cookie名です。 |
|
Cookieパスです。 |
|
Cookieドメインです。 |
例
DECLARE l_cookie_name varchar2(256); l_cookie_path varchar2(256); l_cookie_domain varchar2(256); BEGIN APEX_CUSTOM_AUTH.GET_COOKIE_PROPS ( p _cookie_name => l_cookie_name, p _cookie_path => l_cookie_path, p _cookie_domain => l_cookie_domain); END;
このプロシージャは、カレント・アプリケーションのカレント認証スキームのLDAP属性を取得します。これらのプロパティは、認証スキーム属性を表示することによって、アプリケーション・ビルダーに直接表示できます。
構文
APEX_CUSTOM_AUTH.GET_LDAP_PROPS( p_ldap_host OUT VARCHAR2, p_ldap_port OUT NUMBER, p_ldap_dn OUT VARCHAR2, p_ldap_edit_function OUT VARCHAR2);
パラメータ
表5-2に、GET_LDAP_PROPSプロシージャで使用可能なパラメータを示します。
表5-2 GET_LDAP_PROPSのパラメータ
パラメータ | 説明 |
---|---|
|
LDAPホスト名です。 |
|
LDAPポート番号です。 |
|
LDAP DN文字列です。 |
|
LDAP編集ファンクション名です。 |
例
DECLARE l_ldap_host varchar2(256); l_ldap_port number; l_ldap_dn varchar2(256); l_ldap_edit_function varchar2(256); BEGIN APEX_CUSTOM_AUTH.GET_LDAP_PROPS ( p_ldap_host => l_ldap_host, p_ldap_port => l_ldap_port, p_ldap_dn => l_ldap_dn,' p_ldap_edit_function => l_ldap_edit_function); END;
このファンクションは、Oracle Application Expressシーケンス・ジェネレータから次のセッションIDを生成します。このファンクションは数値を戻します。
構文
FUNCTION GET_NEXT_SESSION_ID RETURN NUMBER;
このファンクションは、現行のブラウザ・セッションのページ・リクエストのコンテキストでセッションCookieによって検索されたOracle Application ExpressのセッションIDを戻します。
構文
APEX_CUSTOM_AUTH.GET_SESSION_ID_FROM_COOKIE RETURN NUMBER;
例
DECLARE VAL NUMBER; BEGIN VAL := APEX_CUSTOM_AUTH.GET_SESSION_ID_FROM_COOKIE; END;
このファンクションは、内部セッション表の現行のOracle Application Expressセッションに登録されたユーザー名を戻します。通常、このユーザー名は、カレント・ページを実行している認証されたユーザーと同じ名前です。
構文
APEX_CUSTOM_AUTH.GET_USERNAME RETURN VARCHAR2;
例
DECLARE VAL VARCHAR2(256); BEGIN VAL := APEX_CUSTOM_AUTH.GET_USERNAME; END;
このファンクションは、カレント・ユーザーの作業領域を示すセキュリティ・グループIDの数値を戻します。
構文
FUNCTION GET_SECURITY_GROUP_ID RETURN NUMBER;
このファンクションは、APEX_APPLICATION
.G_INSTANCE
グローバル変数を戻します。GET_SESSION_ID
は数値を戻します。
構文
PROCEDURE GET_SESSION_ID RETURN NUMBER;
このファンクションは、APEX_APPLICATION
.G_USER
グローバル変数(VARCHAR2
)を戻します。
構文
FUNCTION GET_USER RETURN VARCHAR2;
このファンクションは、有効なセッションが存在するかどうかを確認するカレント・アプリケーションの認証スキームを実行することによって取得されるブール結果を戻します。認証スキーマのページ・エントリのブール結果を戻します。
構文
APEX_CUSTOM_AUTH.IS_SESSION_VALID RETURN BOOLEAN;
例
DECLARE VAL BOOLEAN; BEGIN VAL := APEX_CUSTOM_AUTH.IS_SESSION_VALID; END;
「ログインAPI」とも呼ばれるこのプロシージャは、認証およびセッションの登録を実行します。
構文
APEX_CUSTOM_AUTH.LOGIN( p_uname IN VARCHAR2, p_password IN VARCHAR2, p_session_id IN VARCHAR2, p_app_page IN VARCHAR2, p_entry_point IN VARCHAR2, p_preserve_case IN BOOLEAN);
パラメータ
表5-3に、LOGIN
プロシージャで使用可能なパラメータを示します。
表5-3 LOGINのパラメータ
パラメータ | 説明 |
---|---|
|
ユーザーのログイン名です。 |
|
クリア・テキストのユーザー・パスワードです。 |
|
現行のOracle Application ExpressセッションID。 |
|
カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。 |
|
内部でのみ使用します。 |
|
trueの場合は、セッションの登録時に |
例
BEGIN APEX_CUSTOM_AUTH.LOGIN ( p_uname => 'FRANK', p_password => 'secret99', p_session_id => V('APP_SESSION'), p_app_page => :APP_ID||':1'); END;
注意: p_session_id 引数にバインド変数表記は使用しないでください。 |
このプロシージャは、セッションCookieの設定解除および新しい位置へのリダイレクトを行うことによって、カレント・セッションからのログアウトを実行します。
構文
APEX_CUSTOM_AUTH.LOGOUT( p_this_app IN VARCHAR2, p_next_app_page_sess IN VARCHAR2, p_next_url IN VARCHAR2);
パラメータ
表5-4に、LOGOUT
プロシージャで使用可能なパラメータを示します。
表5-4 LOGOUTのパラメータ
パラメータ | 説明 |
---|---|
|
カレント・アプリケーションIDです。 |
|
リダイレクト先のアプリケーションおよびページ番号です。複数のページをコロン(:)で区切って指定します。また、セッションIDの制御が必要な場合は、オプションでこれらのページの後にコロン(:)、続けてセッションIDを指定します。 |
|
リダイレクト先のURLです( |
例
BEGIN APEX_CUSTOM_AUTH.LOGOUT ( p_this_app => '1000', p_next_app_page_sess => '1000:99'); END;
認証ステップが完了している場合、このプロシージャはセッションの登録を実行します。Oracle Application Expressアプリケーション・ページのコンテキスト内からのみコールできます。
構文
APEX_CUSTOM_AUTH.POST_LOGIN( p_uname IN VARCHAR2, p_session_id IN VARCHAR2, p_app_page IN VARCHAR2, p_preserve_case IN BOOLEAN);
パラメータ
表5-5に、POST_LOGIN
プロシージャで使用可能なパラメータを示します。
表5-5 POST_LOGINのパラメータ
パラメータ | 説明 |
---|---|
|
ユーザーのログイン名です。 |
|
現行のOracle Application ExpressセッションID。 |
|
カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。 |
|
trueの場合は、セッションの登録時に |
例
BEGIN APEX_CUSTOM_AUTH.POST_LOGIN ( p_uname => 'FRANK', p_session_id => V('APP_SESSION'), p_app_page => :APP_ID||':1'); END;
このファンクションは、現行のOracle Application ExpressセッションIDを含むグローバル・パッケージ変数に基づいてブール結果を戻します。結果が正の数の場合はtrueを戻します。結果が負の数の場合はfalseを戻します。
構文
FUNCTION SESSION_ID_EXISTS RETURN BOOLEAN;
例
DECLARE VAL BOOLEAN; BEGIN VAL := APEX_CUSTOM_AUTH.SESSION_ID_EXISTS; END;
このプロシージャは、APEX_APPLICATION
.G_USER
グローバル変数を設定します。SET_USER
には、ユーザーIDを定義するパラメータP_USER
(VARCHAR2
)が必要です。
構文
PROCEDURE SET_USER( p_user IN VARCHAR2)
このプロシージャは、APEX_APPLICATION
.G_INSTANCE
グローバル変数を設定します。このプロシージャには、セッションIDを指定するパラメータP_SESSION_ID
(NUMBER
)が必要です。
構文
PROCEDURE SET_SESSION_ID( p_session_id IN NUMBER)