- Goal
パスワードを変更するFUNCTION
パスワードの条件(8文字以上、英数字 etc)はAPEX上で実装するので、このファンクションではチェックしていない。パスワード変更画面で、パスワード変更ボタンを押したときに呼び出す。パスワードチェック時及び新パスワードのハッシュ化時は、1.PASSWORDをハッシュ化するFUNCTIONを呼び出す。 - SourceThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
create or replace Function CHGPWD(p_user_id in NUMBER, -- USERMASTER の key p_username in VARCHAR2, -- USERNAME p_old_pwd in VARCHAR2, -- old password p_new_pwd in VARCHAR2, -- new password p_con_pwd in VARCHAR2) -- confirm new password return BOOLEAN IS l_flag NUMBER; BEGIN -- Check パスワードと確認パスワードの確認(不要かも) IF p_new_pwd != p_con_pwd THEN RETURN FALSE; END IF; -- 現状のパスワードの確認 select 1 into l_flag from USERMASTER a where a.USER_ID = p_user_id and a.PWD = SHA1_HASH(p_username,p_old_pwd) ---MD5_HASH(p_username,p_old_pwd) and upper(a.USERNAME) = upper(p_username); -- 現状のパスワードが一致した時のみパスワードを更新する IF l_flag = 1 THEN UPDATE USERMASTER a SET a.PWD = SHA1_HASH(p_username,p_new_pwd) ---MD5_HASH(p_username,p_new_pwd) ,a.PWD_EXPIRE = 0 -- Expireをフラグ管理 where a.USER_ID = p_user_id and a.PWD = SHA1_HASH(p_username,p_old_pwd) ------MD5_HASH(p_username,p_old_pwd) and upper(a.USERNAME) = upper(p_username); RETURN TRUE; ELSE RETURN FALSE; END IF; END;
Oracle Application Express Notes | Apps development Notes | Google Cloud Platform | Python | apps test | Cool Beans | English | Books
2016/03/17
3.PASSWORDを変更するFUNCTION :APEX ID/PASSWORD認証機能 - カスタム編 -
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿