Ticker

6/recent/ticker-posts

Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?

Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?

Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?

Oracle Apex Application Password Validation একটি গুরুত্বপূর্ণ বিষয়। Application এবং ডেটা সুরক্ষিত রাখতে Password Validation ব্যবহার অপরিসীম। আজকের ভিডিও/পোষ্টে আমি Password Validation নিয়ে বিস্তারিত আলোচনা করবো।

Password Validation এর ব্যবহার আমি দুইভাবে দেখানোর চেষ্টা করবো।

  • Statically
  • Dynamically.
  • Application Admin User Password Validation নিজেরাই সেট করতে পারে সে জন্য Password Validation Dynamic ভাবে ব্যবহার করবো আমরা।

     Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?
    Password Validation এর মধ্যে যা যা Validation বিধ্যমান ধাকবে.........

  • পাসওয়ার্ডে A-Z থেকে কমপক্ষে একটি বড় অক্ষর থাকতে হবে।
  • পাসওয়ার্ডে অবশ্যই a-z থেকে কমপক্ষে একটি ছোট অক্ষর থাকতে হবে।
  • পাসওয়ার্ডে 0-9 পর্যন্ত কমপক্ষে একটি নম্বর থাকতে হবে।
  • পাসওয়ার্ডে অবশ্যই একটি বিশেষ অক্ষর থাকতে হবে (@, $, !, &, ইত্যাদি)।
  • পাসওয়ার্ডের দৈর্ঘ্য কমপক্ষে ৮ অক্ষর হতে হবে।
  • সব থেকে গুরুত্বপূর্ণ হলো পাসওয়ার্ড এর ঘর খালি রাখা যাবে না।
  • উদাহরণ: Abc#1234
  • Steps কিভাবে Oracle Apex Application এ Password Validation ব্যবহার করবো................

    ১ম ধাপে আমরা আপনাকে দেখাব কিভাবে স্ট্যাটিকলি পাসওয়ার্ড ভ্যালিডেশন সেট করতে হয়।
    Password Validation আমরা নতুন Password ক্রিয়েট করার সময় অথবা পাসওয়ার্ড পরিবর্তন করার ব্যবহার করতে পারি। আপনারা ইচ্ছেমত সুবিধাজনক স্থানে Password Validation সেট করবেন। আমি আমার অ্যাপ্লিকেশনে পাসওয়ার্ড পরিবর্তন পেইজে নিউ পাসওয়ার্ড আইটের উপর Validation সেট করে দেখাবো।

    আমি Password Validation ব্যবহার করার জন্য সরাসরি আমার পাসওয়ার্ড পরিবর্তন পৃষ্ঠাতে যাব।
     Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?

  • NEW_PASSWORD আইটেমের উপর রাইট বাটন ক্লিক করে একটি ভেলিডেশন ক্রিয়েট করবো.
  • Name-Pass_Validation
  • Type- Function Body (returning Error Text)
  • PL/SQL Function Body Returning Error Text (Paste the following code)
  • 
        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;
  • PL/SQL Script আপনি আপনার অ্যাপ্লিকেশন অনুযায়ী পরিবর্তন করবেন, বিশেষ করে আপনার Page Item এর নাম অনুসারে Script এ পরিবর্তন করতে হবে।
  • আমাদের ১ম ধাপের কাজ প্রায় শেষ। এই পর্যায়ে আমরা যে Static ভাবে ব্যবহৃত Password Validation সঠিকভাবে সেট হয়েছে কি-না তা যাচাই করে দেখব।
  •  Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?

    আমাদের ১ম ধাপে Static ভাবে Password Validation এর ব্যবহার সম্পূর্ণ হয়েছে।

    ২য় ধাপে আমরা দেখাবো কিভাবে Dynamically Password Validation ব্যবহার করতে হয়।

    Dynamically Password Validation ব্যবহার করার জন্য আমাদের একটি টেবিল এবং একটি প্রসিডিউর তৈরি করতে হবে। আমি ধাপে ধাপে টেবিল এবং PROCEDURE তৈরি করব এবং আপনাকে সমস্ত স্ক্রিপ্ট দেওয়ার চেষ্টা করব।

  • একটি টেবিল Create করুন (নিচের Script ব্যবহার করেও টেবিল তৈরি করতে পারেন)
  • 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)
    );
    নতুন From Page Create করবো.

  • নাম- Set Password Validation
  • টেবিল- PASSWORD_POLICY
  •  Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?
    কাজের সুবিধার্থে আমরা একটি List Of Values Create করবো.

  • Go To Shared Components
  • Click Lists of Values
  • Click Create
  • Name- YES_OR_NO
  • Source: Static Values
  • Display- Yes, No
  • Return- Y, N
  •  Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?
    ফর্মের সমস্ত আইটেম গুছিয়ে নেব..

  • Password Validation ব্যবহার করার জন্য এ পর্যায়ে আমরা একটি PROCEDURE ক্রিয়েট করবো। (Paste the following code)
  • 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;
     Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?

  • PROCEDURE ক্রিয়েট সঠিকভাবে সম্পন্ন হলে এ পর্যায়ে আমরা পুনরায় পাসওয়ার্ড পরিবর্তন পেইজে যাবো।
  • NEW_PASSWORD আইটেমের উপর রাইট বাটন ক্লিক করে একটি ভেলিডেশন ক্রিয়েট করবো
  • Name- DYNAMICALLY_PASS_VALIDATION
  • Type- Function Body (returning Error Text)
  • PL/SQL Function Body Returning Error Text (Paste the following code)
  • 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 সঠিকভাবে সেট হয়েছে কি-না তা যাচাই করে দেখব।

     Oracle Apex Application 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 এ

  • ইউজার ৫ বারের বেশি Wrong Password ব্যবহার করলে একাউন্ট লক হয়ে যাওয়া।
  • নির্দিষ্ট সময়ের জন্য একাউন্ট লক.
  • ইত্যাদি বিষয়ে নিয়ে বিস্তারিত থাকবে।

     Oracle Apex Application Password Validation কিভাবে ব্যবহার করবেন?
    PLS Subscribing To My Youtube Channel. Thank You...

    🔗 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.........................

    Post a Comment

    0 Comments