CustomPasswordRule ক্লাস তৈরি করা

Custom Rules তৈরি করা - প্যাসে (Passay) - Java Technologies

254

Passay লাইব্রেরিতে CustomPasswordRule তৈরি করার মাধ্যমে আপনি আপনার নিজের পাসওয়ার্ড ভ্যালিডেশন রুল তৈরি করতে পারেন। একটি কাস্টম রুল তৈরি করতে, PasswordRule ক্লাসটি সম্প্রসারণ (extend) করে এবং প্রয়োজনীয় validate মেথডটি কাস্টমাইজ করতে হয়।

CustomPasswordRule তৈরি করার ধাপ:

  1. PasswordRule ইন্টারফেস বা AbstractPasswordRule ক্লাসটি এক্সটেন্ড করুন।
  2. validate মেথডটি অগ্রাহ্য করুন এবং সেখানে আপনার কাস্টম লজিক প্রয়োগ করুন।
  3. getErrorMessages মেথডটি দিয়ে ব্যর্থ হলে কিভাবে ত্রুটি বার্তা প্রদর্শন করবেন তা কাস্টমাইজ করুন।

এখন, আমি একটি উদাহরণ তৈরি করছি যেখানে একটি কাস্টম রুল তৈরি করা হবে যা পাসওয়ার্ডে অন্তত দুটি ভিন্ন ধরনের স্পেশাল ক্যারেক্টার (যেমন @, #, $, &, ইত্যাদি) থাকতে হবে।


CustomPasswordRule উদাহরণ:

import org.passay.*;
import java.util.Arrays;
import java.util.List;

// কাস্টম পাসওয়ার্ড রুল ক্লাস তৈরি করা
public class SpecialCharacterCountRule extends AbstractPasswordRule {

    private final int minSpecialChars;

    // কনস্ট্রাক্টর দিয়ে মিনিমাম স্পেশাল ক্যারেক্টারের সংখ্যা সেট করা
    public SpecialCharacterCountRule(int minSpecialChars) {
        this.minSpecialChars = minSpecialChars;
    }

    @Override
    public RuleResult validate(PasswordData passwordData) {
        String password = passwordData.getPassword();
        int specialCharCount = 0;

        // পাসওয়ার্ডের প্রতিটি চরিত্র পরীক্ষা করা
        for (char c : password.toCharArray()) {
            if (!Character.isLetterOrDigit(c)) {
                specialCharCount++;
            }
        }

        // যদি স্পেশাল ক্যারেক্টারের সংখ্যা কম হয়, তাহলে তা অবৈধ বলে চিহ্নিত করা
        if (specialCharCount < minSpecialChars) {
            return new RuleResult(
                RuleResult.STATUS_FAILED, 
                Arrays.asList("পাসওয়ার্ডে অন্তত " + minSpecialChars + " স্পেশাল ক্যারেক্টার থাকতে হবে!")
            );
        }

        // যদি পাসওয়ার্ড বৈধ হয়, তাহলে পাসওয়ার্ড ভ্যালিড হবে
        return RuleResult.PASSED;
    }
}

কাস্টম রুল ব্যবহার করে পাসওয়ার্ড ভ্যালিডেশন:

import org.passay.*;

import java.util.Arrays;

public class CustomPasswordRuleExample {
    public static void main(String[] args) {
        // কাস্টম স্পেশাল ক্যারেক্টার রুল তৈরি করা (যেমন, অন্তত 2 স্পেশাল ক্যারেক্টার থাকতে হবে)
        PasswordValidator validator = new PasswordValidator(Arrays.asList(
            new LengthRule(8, 16),           // পাসওয়ার্ড দৈর্ঘ্য 8-16 অক্ষর
            new UppercaseCharacterRule(1),  // অন্তত ১টি বড় হাতের অক্ষর
            new DigitCharacterRule(1),      // অন্তত ১টি সংখ্যা
            new SpecialCharacterCountRule(2) // কাস্টম স্পেশাল ক্যারেক্টার রুল (2 স্পেশাল ক্যারেক্টার)
        ));

        // নতুন পাসওয়ার্ড ইনপুট
        String newPassword = "MySecure@#123";

        // পাসওয়ার্ড যাচাই
        RuleResult result = validator.validate(new PasswordData(newPassword));

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            validator.getMessages(result).forEach(System.out::println);
        }
    }
}

ব্যাখ্যা:

  1. SpecialCharacterCountRule: এটি একটি কাস্টম রুল যা পাসওয়ার্ডে কমপক্ষে দুটি স্পেশাল ক্যারেক্টার থাকতে হবে।
  2. validate মেথড: এই মেথডে, পাসওয়ার্ডের প্রতিটি চরিত্র পরীক্ষা করা হয় এবং স্পেশাল ক্যারেক্টারের সংখ্যা গণনা করা হয়। যদি সংখ্যাটি নির্দিষ্ট সীমার নিচে হয়, তবে রুলটি ব্যর্থ হবে এবং একটি ত্রুটি বার্তা প্রদান করবে।
  3. রুল প্রয়োগ: PasswordValidator ক্লাসে আমাদের কাস্টম রুলটি অন্তর্ভুক্ত করা হয়েছে, যাতে পাসওয়ার্ড ভ্যালিডেশন প্রক্রিয়াতে এটি ব্যবহৃত হয়।

Maven Dependency:

Passay লাইব্রেরি ব্যবহার করতে, Maven ডিপেনডেন্সি অন্তর্ভুক্ত করতে হবে:

<dependency>
    <groupId>org.passay</groupId>
    <artifactId>passay</artifactId>
    <version>1.6.0</version>
</dependency>

উপকারিতা:

  • কাস্টম রুল তৈরি করার মাধ্যমে আপনি আপনার নির্দিষ্ট নিরাপত্তা প্রয়োজনীয়তা অনুসারে পাসওয়ার্ডের যাচাই প্রক্রিয়া কাস্টমাইজ করতে পারবেন।
  • এটি আপনাকে সাধারণ পাসওয়ার্ড রুলের বাইরে আরও নির্দিষ্ট নিয়ম প্রয়োগ করার সুযোগ দেয়, যেমন স্পেশাল ক্যারেক্টার, প্যাটার্ন চেকিং, বা শব্দের তালিকা।

এভাবে আপনি Passay-এর কাস্টম রুল তৈরি করতে পারেন এবং আপনার অ্যাপ্লিকেশন বা সিস্টেমে নিরাপত্তা চেকগুলি আরও কাস্টমাইজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...