উদাহরণ সহ Custom Error Messages এবং Multiple Rules

Multiple Rules এবং Custom Error Messages - প্যাসে (Passay) - Java Technologies

344

প্যাসে (Passay) Java লাইব্রেরি ব্যবহার করে কাস্টম ত্রুটির বার্তা (custom error messages) এবং একাধিক নিয়ম (multiple rules) প্রয়োগ করা সম্ভব। এটি আপনাকে ব্যবহারকারীর জন্য আরও তথ্যপূর্ণ এবং উপযুক্ত ত্রুটি বার্তা প্রদানে সহায়তা করে। নিচে এর উদাহরণসহ ব্যাখ্যা দেওয়া হলো।


Custom Error Messages এবং Multiple Rules উদাহরণ

import org.passay.*;

import java.util.Arrays;
import java.util.List;
import java.util.Locale;

public class CustomErrorMessagesExample {
    public static void main(String[] args) {
        // কাস্টম মেসেজ কনফিগারেশন
        MessageResolver customMessageResolver = new MessageResolver() {
            @Override
            public String resolve(String key) {
                switch (key) {
                    case "TOO_SHORT":
                        return "পাসওয়ার্ড খুব ছোট! এটি অন্তত 8 অক্ষর হতে হবে।";
                    case "TOO_LONG":
                        return "পাসওয়ার্ড খুব বড়! এটি সর্বাধিক 16 অক্ষর হতে পারবে।";
                    case "INSUFFICIENT_UPPERCASE":
                        return "পাসওয়ার্ডে অন্তত একটি বড় হাতের অক্ষর থাকতে হবে।";
                    case "INSUFFICIENT_DIGIT":
                        return "পাসওয়ার্ডে অন্তত একটি সংখ্যা থাকতে হবে।";
                    case "INSUFFICIENT_SPECIAL":
                        return "পাসওয়ার্ডে অন্তত একটি বিশেষ অক্ষর থাকতে হবে (যেমন: @, #, $)।";
                    default:
                        return "ত্রুটি: " + key;
                }
            }

            @Override
            public String resolve(String key, Object... args) {
                return resolve(key);
            }
        };

        // PasswordValidator এর নিয়ম সমূহ
        PasswordValidator validator = new PasswordValidator(
            customMessageResolver, // কাস্টম মেসেজ রেসলভার
            Arrays.asList(
                new LengthRule(8, 16),               // দৈর্ঘ্য 8 থেকে 16 অক্ষর
                new UppercaseCharacterRule(1),       // অন্তত 1 বড় হাতের অক্ষর
                new DigitCharacterRule(1),          // অন্তত 1 সংখ্যা
                new SpecialCharacterRule(1),        // অন্তত 1 বিশেষ অক্ষর
                new WhitespaceRule()                // ফাঁকা জায়গা নিষিদ্ধ
            )
        );

        // পাসওয়ার্ড যাচাই
        String password = "Weak@123";
        RuleResult result = validator.validate(new PasswordData(password));

        if (result.isValid()) {
            System.out.println("পাসওয়ার্ড বৈধ!");
        } else {
            System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
            List<String> messages = validator.getMessages(result);
            messages.forEach(System.out::println); // কাস্টম মেসেজ প্রিন্ট
        }
    }
}

ব্যাখ্যা:

  1. Custom Message Resolver:
    MessageResolver ইন্টারফেস ইমপ্লিমেন্ট করে নির্দিষ্ট নিয়মের জন্য কাস্টম ত্রুটি বার্তা প্রদান করা হয়েছে। উদাহরণস্বরূপ, "TOO_SHORT" এর জন্য বার্তা:
    • "পাসওয়ার্ড খুব ছোট! এটি অন্তত 8 অক্ষর হতে হবে।"
  2. Multiple Rules:
    • LengthRule(8, 16) -> দৈর্ঘ্য 8 থেকে 16 অক্ষর।
    • UppercaseCharacterRule(1) -> অন্তত 1 বড় হাতের অক্ষর।
    • DigitCharacterRule(1) -> অন্তত 1 সংখ্যা।
    • SpecialCharacterRule(1) -> অন্তত 1 বিশেষ অক্ষর।
    • WhitespaceRule() -> ফাঁকা জায়গা নিষিদ্ধ।
  3. Password Validation:
    validator.validate(new PasswordData(password)) দিয়ে পাসওয়ার্ড যাচাই করা হয়েছে। যদি পাসওয়ার্ড অবৈধ হয়, তবে কাস্টম বার্তা validator.getMessages(result) ব্যবহার করে প্রিন্ট করা হয়েছে।

আউটপুট:

যদি পাসওয়ার্ড হয় Weak@123, আউটপুট হবে:

পাসওয়ার্ড অবৈধ। কারণ:
পাসওয়ার্ডে অন্তত একটি বড় হাতের অক্ষর থাকতে হবে।

Maven Dependency:

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