ヘッダーをスキップ
Oracle Application Express APIリファレンス
リリース3.1.2
B51325-01
  目次
目次
索引
索引

前へ
前へ
 
次へ
次へ
 

5 APEX_CUSTOM_AUTH

APEX_CUSTOM_AUTHパッケージを使用すると、認証およびセッション管理に関連する様々な操作を実行できます。

このセクションの構成は次のとおりです。


APPLICATION_PAGE_ITEM_EXISTSファンクション

このファンクションは、アプリケーション内のページ・レベル・アイテムの存在を確認します。このファンクションでは、パラメータp_item_nameが必要です。このファンクションはブール値(trueまたはfalse)を戻します。

構文

FUNCTION APPLICATION_PAGE_ITEM_EXISTS(
    p_item_name   IN    VARCHAR2)
RETURN BOOLEAN;

CURRENT_PAGE_IS_PUBLICファンクション

このファンクションは、カレント・ページの認証属性がパブリック・ページに設定されているかどうかを確認し、ブール値(trueまたはfalse)を戻します。


参照:

Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイドの「ページ属性の編集」

構文

FUNCTION CURRENT_PAGE_IS_PUBLIC 
RETURN BOOLEAN;

DEFINE_USER_SESSIONプロシージャ

このプロシージャは、SET_USERおよびSET_SESSION_IDプロシージャを組み合せて、1回のコールに結合します。

構文

PROCEDURE DEFINE_USER_SESSION(
    p_user         IN    VARCHAR2)
    p_session_id   IN    NUMBER);

GET_COOKIE_PROPSプロシージャ

このプロシージャは、指定したアプリケーションのカレント認証スキームで使用されるセッション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のパラメータ

パラメータ 説明

p_app_id

現行の作業領域のアプリケーションIDです。

p_cookie_name

Cookie名です。

p_cookie_path

Cookieパスです。

p_cookie_domain

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;

GET_LDAP_PROPSプロシージャ

このプロシージャは、カレント・アプリケーションのカレント認証スキームの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のパラメータ

パラメータ 説明

p_ldap_host

LDAPホスト名です。

p_ldap_port

LDAPポート番号です。

p_ldap_dn

LDAP DN文字列です。

p_ldap_edit_function

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;

GET_NEXT_SESSION_IDファンクション

このファンクションは、Oracle Application Expressシーケンス・ジェネレータから次のセッションIDを生成します。このファンクションは数値を戻します。

構文

FUNCTION GET_NEXT_SESSION_ID 
RETURN NUMBER;

GET_SESSION_ID_FROM_COOKIEファンクション

このファンクションは、現行のブラウザ・セッションのページ・リクエストのコンテキストでセッション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;

GET_USERNAMEファンクション

このファンクションは、内部セッション表の現行のOracle Application Expressセッションに登録されたユーザー名を戻します。通常、このユーザー名は、カレント・ページを実行している認証されたユーザーと同じ名前です。

構文

APEX_CUSTOM_AUTH.GET_USERNAME
RETURN VARCHAR2;

DECLARE VAL VARCHAR2(256);
BEGIN
  VAL := APEX_CUSTOM_AUTH.GET_USERNAME;
END;

GET_SECURITY_GROUP_IDファンクション

このファンクションは、カレント・ユーザーの作業領域を示すセキュリティ・グループIDの数値を戻します。

構文

FUNCTION GET_SECURITY_GROUP_ID 
RETURN NUMBER;

GET_SESSION_IDファンクション

このファンクションは、APEX_APPLICATION.G_INSTANCEグローバル変数を戻します。GET_SESSION_IDは数値を戻します。

構文

PROCEDURE GET_SESSION_ID 
RETURN NUMBER;

GET_USERファンクション

このファンクションは、APEX_APPLICATION.G_USERグローバル変数(VARCHAR2)を戻します。

構文

FUNCTION GET_USER 
RETURN VARCHAR2;

IS_SESSION_VALIDファンクション

このファンクションは、有効なセッションが存在するかどうかを確認するカレント・アプリケーションの認証スキームを実行することによって取得されるブール結果を戻します。認証スキーマのページ・エントリのブール結果を戻します。

構文

APEX_CUSTOM_AUTH.IS_SESSION_VALID
RETURN BOOLEAN;

DECLARE VAL BOOLEAN;
BEGIN
  VAL := APEX_CUSTOM_AUTH.IS_SESSION_VALID;
END;

LOGINプロシージャ

「ログイン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のパラメータ

パラメータ 説明

p_uname

ユーザーのログイン名です。

p_password

クリア・テキストのユーザー・パスワードです。

p_session_id

現行のOracle Application ExpressセッションID。

p_app_page

カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。

p_entry_point

内部でのみ使用します。

p_preserve_case

trueの場合は、セッションの登録時にp_unameを大文字で指定しないでください。


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引数にバインド変数表記は使用しないでください。


LOGOUTプロシージャ

このプロシージャは、セッション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のパラメータ

パラメータ 説明

p_this_app

カレント・アプリケーションIDです。

p_next_app_page_sess

リダイレクト先のアプリケーションおよびページ番号です。複数のページをコロン(:)で区切って指定します。また、セッションIDの制御が必要な場合は、オプションでこれらのページの後にコロン(:)、続けてセッションIDを指定します。

p_next_url

リダイレクト先のURLです(p_next_app_page_sessのかわりに使用します)。


BEGIN
APEX_CUSTOM_AUTH.LOGOUT (
    p_this_app            => '1000',
    p_next_app_page_sess  => '1000:99');
END;

POST_LOGINプロシージャ

認証ステップが完了している場合、このプロシージャはセッションの登録を実行します。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のパラメータ

パラメータ 説明

p_uname

ユーザーのログイン名です。

p_session_id

現行のOracle Application ExpressセッションID。

p_app_page

カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。

p_preserve_case

trueの場合は、セッションの登録時にp_unameを大文字で指定しないでください。


BEGIN
APEX_CUSTOM_AUTH.POST_LOGIN (
    p_uname       => 'FRANK',
    p_session_id  => V('APP_SESSION'),
    p_app_page    => :APP_ID||':1');
END;

SESSION_ID_EXISTSファンクション

このファンクションは、現行のOracle Application ExpressセッションIDを含むグローバル・パッケージ変数に基づいてブール結果を戻します。結果が正の数の場合はtrueを戻します。結果が負の数の場合はfalseを戻します。

構文

FUNCTION SESSION_ID_EXISTS 
RETURN BOOLEAN;

DECLARE VAL BOOLEAN; 
BEGIN
  VAL := APEX_CUSTOM_AUTH.SESSION_ID_EXISTS;
END;

SET_USERプロシージャ

このプロシージャは、APEX_APPLICATION.G_USERグローバル変数を設定します。SET_USERには、ユーザーIDを定義するパラメータP_USERVARCHAR2)が必要です。

構文

PROCEDURE SET_USER(
    p_user   IN    VARCHAR2)

SET_SESSION_IDプロシージャ

このプロシージャは、APEX_APPLICATION.G_INSTANCEグローバル変数を設定します。このプロシージャには、セッションIDを指定するパラメータP_SESSION_IDNUMBER)が必要です。

構文

PROCEDURE SET_SESSION_ID( 
    p_session_id    IN    NUMBER)

SET_SESSION_ID_TO_NEXT_VALUEプロシージャ

このプロシージャは、GET_NEXT_SESSION_IDおよびSET_SESSION_IDの操作を1回のコールに結合します。

構文

PROCEDURE SET_SESSION_ID_TO_NEXT_VALUE;