Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?
Oracle Apex Application Password Validation একটি গুরুত্বপূর্ণ বিষয়। Application এবং ডেটা সুরক্ষিত রাখতে Password Validation ব্যবহার অপরিসীম। আজকের ভিডিও/পোষ্টে আমি Password Validation নিয়ে বিস্তারিত আলোচনা করবো।
Password Validation এর ব্যবহার আমি দুইভাবে দেখানোর চেষ্টা করবো।
Application Admin User Password Validation নিজেরাই সেট করতে পারে সে জন্য Password Validation Dynamic ভাবে ব্যবহার করবো আমরা।
Steps কিভাবে Oracle Apex Application এ Password Validation ব্যবহার করবো................
১ম ধাপে আমরা আপনাকে দেখাব কিভাবে স্ট্যাটিকলি পাসওয়ার্ড ভ্যালিডেশন সেট করতে হয়।
Password Validation আমরা নতুন Password ক্রিয়েট করার সময় অথবা পাসওয়ার্ড পরিবর্তন করার ব্যবহার করতে পারি। আপনারা ইচ্ছেমত সুবিধাজনক স্থানে Password Validation সেট করবেন। আমি আমার অ্যাপ্লিকেশনে পাসওয়ার্ড পরিবর্তন পেইজে নিউ পাসওয়ার্ড আইটের উপর Validation সেট করে দেখাবো।
BEGIN
IF LENGTH ( :P14_NEW_PASSWORD) < 8
THEN
RETURN 'Password length must be more than 8 Character';
ELSE
IF LENGTH ( :P14_NEW_PASSWORD) > 20
THEN
RETURN 'Password length must be less than 10 Character';
ELSE
IF NOT REGEXP_LIKE ( :P14_NEW_PASSWORD, '^.*[A-Z]', 'c')
THEN
RETURN 'Upper Case characters Not Found';
ELSE
IF NOT REGEXP_LIKE ( :P14_NEW_PASSWORD, '^.*[a-z]', 'c')
THEN
RETURN 'Lower Case characters Not Found';
ELSE
IF NOT REGEXP_LIKE ( :P14_NEW_PASSWORD, '^.*[a-zA-Z]', 'c')
THEN
RETURN 'Alhpabet characters Not Found';
ELSE
IF NOT REGEXP_LIKE ( :P14_NEW_PASSWORD,
'^.*[0-9]',
'c')
THEN
RETURN 'Numeric characters Not Found';
ELSE
IF NOT REGEXP_LIKE ( :P14_NEW_PASSWORD,
'^.*[!@#$%^&*()_]',
'c')
THEN
RETURN 'Special characters Not Found';
ELSE
RETURN '';
END IF;
END IF;
END IF;
END IF;
END IF;
END IF;
END IF;
END;
আমাদের ১ম ধাপে Static ভাবে Password Validation এর ব্যবহার সম্পূর্ণ হয়েছে।
২য় ধাপে আমরা দেখাবো কিভাবে Dynamically Password Validation ব্যবহার করতে হয়।
Dynamically Password Validation ব্যবহার করার জন্য আমাদের একটি টেবিল এবং একটি প্রসিডিউর তৈরি করতে হবে। আমি ধাপে ধাপে টেবিল এবং PROCEDURE তৈরি করব এবং আপনাকে সমস্ত স্ক্রিপ্ট দেওয়ার চেষ্টা করব।
CREATE TABLE "PASSWORD_POLICY"
(
"OID" NUMBER,
"PASS_MIN_LENGTH" NUMBER,
"PASS_MAX_LENGTH" NUMBER,
"ALPHABETIC_CHAR" VARCHAR2 (1),
"NUMERIC_CHAR" VARCHAR2 (1),
"PUNCTUATION_CHAR" VARCHAR2 (1),
"UPPER_CASE_CHAR" VARCHAR2 (1),
"LOWER_CASE_CHAR" VARCHAR2 (1),
"USER_NAME" VARCHAR2 (1),
"WORD_LIST" VARCHAR2 (1024),
"PUNCTUATION_CHAR_LIST" VARCHAR2 (1024)
);
CREATE OR REPLACE PROCEDURE "PASSWORD_VALIDATION" (
pPassword IN VARCHAR2,
vUSERID IN VARCHAR2,
vOutMessage OUT VARCHAR2)
--- RETURN VARCHAR2
AS
vPASS_MIN_LENGTH INTEGER;
vPASS_MAX_LENGTH INTEGER;
vALPHABETIC_CHAR VARCHAR2 (2);
vNUMERIC_CHAR VARCHAR2 (2);
vUPPER_CASE_CHAR VARCHAR2 (2);
vLOWER_CASE_CHAR VARCHAR2 (2);
vPUNCTUATION_CHAR VARCHAR2 (2);
vPASSWORD_DIFF VARCHAR2 (2);
pPassword_old VARCHAR2 (4000);
pPassword_old_1 VARCHAR2 (4000);
--- vOutMessage VARCHAR2 (100);
BEGIN
SELECT PASS_MIN_LENGTH,
PASS_MAX_LENGTH,
ALPHABETIC_CHAR,
NUMERIC_CHAR,
UPPER_CASE_CHAR,
LOWER_CASE_CHAR,
PUNCTUATION_CHAR,
PASSWORD_DIFF
INTO vPASS_MIN_LENGTH,
vPASS_MAX_LENGTH,
vALPHABETIC_CHAR,
vNUMERIC_CHAR,
vUPPER_CASE_CHAR,
vLOWER_CASE_CHAR,
vPUNCTUATION_CHAR,
vPASSWORD_DIFF
FROM PASSWORD_POLICY;
IF LENGTH (pPassword) < vPASS_MIN_LENGTH
THEN
vOutMessage :=
'Password length must be more than '
|| vPASS_MIN_LENGTH
|| ' Character';
RETURN;
ELSE
vOutMessage := 1;
END IF;
IF LENGTH (pPassword) > vPASS_MAX_LENGTH
THEN
vOutMessage :=
'Password length must be less than '
|| vPASS_MAX_LENGTH
|| ' Character';
RETURN;
-- else
-- vOutMessage:=1;
END IF;
IF vUPPER_CASE_CHAR = 'Y'
THEN
IF REGEXP_LIKE (pPassword, '^.*[A-Z]', 'c')
THEN
DBMS_OUTPUT.put_line ('Upper Case characters Found');
--- vOutMessage := 1;
vOutMessage := 1;
ELSE
DBMS_OUTPUT.put_line ('Upper Case characters Not Found');
vOutMessage := 'Upper Case characters Not Found';
RETURN;
END IF;
END IF;
IF vLOWER_CASE_CHAR = 'Y'
THEN
IF REGEXP_LIKE (pPassword, '^.*[a-z]', 'c')
THEN
DBMS_OUTPUT.put_line ('Lower Case characters Found');
--- vOutMessage := 1;
vOutMessage := 1;
ELSE
DBMS_OUTPUT.put_line ('Lower Case characters Not Found');
vOutMessage := 'Lower Case characters Not Found';
RETURN;
END IF;
END IF;
IF vALPHABETIC_CHAR = 'Y'
THEN
IF REGEXP_LIKE (pPassword, '^.*[a-zA-Z]', 'c')
THEN
DBMS_OUTPUT.put_line ('Alhpabet characters Found');
vOutMessage := 1;
ELSE
DBMS_OUTPUT.put_line ('Alhpabet characters Not Found');
vOutMessage := 'Alhpabet characters Not Found';
RETURN;
END IF;
END IF;
IF vNUMERIC_CHAR = 'Y'
THEN
IF REGEXP_LIKE (pPassword, '^.*[0-9]', 'c')
THEN
DBMS_OUTPUT.put_line ('Numeric characters Found');
vOutMessage := 1;
ELSE
DBMS_OUTPUT.put_line ('Numeric characters Found');
vOutMessage := 'Numeric characters Not Found';
RETURN;
END IF;
END IF;
IF vPUNCTUATION_CHAR = 'Y'
THEN
IF REGEXP_LIKE (pPassword, '^.*[!@#$%^&*()_]', 'c')
THEN
DBMS_OUTPUT.put_line ('Special characters Found');
vOutMessage := 1;
ELSE
DBMS_OUTPUT.put_line ('Special characters Not Found');
vOutMessage := 'Special characters Not Found';
RETURN;
END IF;
END IF;
IF vPASSWORD_DIFF = 'Y'
THEN
SELECT PIN
INTO pPassword_old
FROM MY_USERS
WHERE UPPER (USERNAME) = UPPER (vUSERID);
pPassword_old_1 := acl.CUSTOM_HASH (vUSERID, pPassword);
IF pPassword_old_1 = pPassword_old
THEN
vOutMessage := 'Old Password and New Password Can Not be Same';
RETURN;
ELSE
vOutMessage := 1;
END IF;
END IF;
END;
DECLARE
mess VARCHAR2 (300);
BEGIN
PASSWORD_VALIDATION ( :P14_NEW_PASSWORD, acl.GET_CURRENT_USER, mess);
IF mess != '1'
THEN
RETURN mess;
END IF;
END;
আমাদের ২য় ধাপের কাজ প্রায় শেষ। এই পর্যায়ে আমরা Dynamic ভাবে Password Validation সঠিকভাবে সেট হয়েছে কি-না তা যাচাই করে দেখব।
Our Use Of Static And Dynamic Password Validation Has Been Completed. Hopefully The Complete Video/post Of Password Validation.
This Will Help You To Some Extent. If You Have Any Observations Or Suggestions Regarding This Post, Please Let Us Know In The Comment Box. Please Support Me By Subscribing to My Channel.
আমার পরবর্তী ভিডিওতে Login Validation এর বিস্তারিত দেখানোর চেষ্টা করবো।
Login Validation এ
🔗 Demo Application-
URL- Demo Application
Username - demo,
Pass- demo
I hope everyone will like it. Please watch the full video, Comment on any of your problems,
I will try my best to solve the problem,In-Shah Allah. Everyone's cooperation is desirable. Visit my blog site, new technology related videos, you will get different types of tutorials of Oracle Apex, and hopefully, you can use them in your daily work.
Please stay tuned by subscribing to the YouTube channel, and encourages new videos to be uploaded
=================
Visit my site to get more collaborative posts about Oracle Apex and subscribe to my YouTube channel. Thanks.
Comment on any of your issues, I will try my best to solve the problem, In-Shah Allah. Everyone' s cooperation is desirable.
Visit my blog site, New technology-related videos, you will get different types of tutorials of Oracle Apex, and hopefully, you can use them in your daily work
==============================
🙍🏾 Md jABER HOSSEN
📲 Mobile-+8801760688286
📨 Email- jaberit786@gmail.combr />
🌐 FB- facebook.com/mdjaber.hossen1
Please Subscribe to My Channel
Many thanks for visiting the site.
Then Enjoy.........................
0 Comments