প্যাসে (Passay) লাইব্রেরি আপনাকে Custom Password Validation Rule তৈরি করার সুযোগ দেয়, যা আপনি আপনার পাসওয়ার্ড নীতির সাথে আরও কাস্টমাইজড নিয়ম প্রয়োগ করতে ব্যবহার করতে পারেন। এই প্রক্রিয়াটি পাসওয়ার্ডের কিছু নির্দিষ্ট বৈশিষ্ট্য বা শর্ত অনুযায়ী কাজ করে এবং নির্দিষ্ট নিয়মে পাসওয়ার্ড যাচাই করতে সাহায্য করে।
Custom Password Validation Rule তৈরি করা:
যখন আপনি একটি কাস্টম রুল তৈরি করেন, তখন আপনি Rule ইন্টারফেসটি ইমপ্লিমেন্ট করবেন এবং সেটি আপনার নির্দিষ্ট কন্ডিশনের উপর ভিত্তি করে পাসওয়ার্ড যাচাই করবেন। আপনার কাস্টম রুলটি পাসওয়ার্ডের মধ্যে কোন নির্দিষ্ট বৈশিষ্ট্য থাকতে হবে কি না তা যাচাই করবে, যেমন: নির্দিষ্ট অক্ষর, প্যাটার্ন, অথবা এমন কিছু যা ডিফল্ট নিয়মের বাইরে।
Custom Rule তৈরি করার উদাহরণ:
ধরা যাক, আপনি একটি কাস্টম পাসওয়ার্ড রুল তৈরি করতে চান যা পাসওয়ার্ডে অন্তত একটি "xyz" শব্দ থাকতে হবে।
Custom Rule Class:
import org.passay.*;
import java.util.Arrays;
public class CustomPasswordRule implements Rule {
// পাসওয়ার্ডে "xyz" শব্দ থাকতে হবে এমন শর্ত তৈরি
@Override
public RuleResult validate(PasswordData passwordData) {
String password = passwordData.getPassword();
RuleResult result = new RuleResult();
// চেক করা হচ্ছে "xyz" শব্দটি পাসওয়ার্ডে আছে কি না
if (password.contains("xyz")) {
result.setValid(true);
} else {
result.setValid(false);
result.addErrorMessage("পাসওয়ার্ডে 'xyz' শব্দটি থাকা আবশ্যক।");
}
return result;
}
}
এখন আমরা Passay এর মধ্যে CustomPasswordRule ব্যবহার করবো এবং সেটি একটি পাসওয়ার্ডের সাথে যাচাই করব।
Passay তে Custom Rule ব্যবহার করা:
import org.passay.*;
import java.util.Arrays;
public class CustomRuleExample {
public static void main(String[] args) {
// পাসওয়ার্ড যাচাইয়ের জন্য কাস্টম রুল সহ একটি ভ্যালিডেটর তৈরি
PasswordValidator validator = new PasswordValidator(Arrays.asList(
new LengthRule(8, 16), // পাসওয়ার্ডের দৈর্ঘ্য 8-16 অক্ষর
new UppercaseCharacterRule(1), // অন্তত একটি বড় হাতের অক্ষর
new DigitCharacterRule(1), // অন্তত একটি সংখ্যা
new SpecialCharacterRule(1), // অন্তত একটি স্পেশাল ক্যারেক্টার
new CustomPasswordRule() // কাস্টম পাসওয়ার্ড রুল
));
String password = "MySecurexyz123!";
RuleResult result = validator.validate(new PasswordData(password));
if (result.isValid()) {
System.out.println("পাসওয়ার্ড বৈধ!");
} else {
System.out.println("পাসওয়ার্ড অবৈধ। কারণ:");
validator.getMessages(result).forEach(System.out::println);
}
}
}
এখানে কী হচ্ছে?
- CustomPasswordRule:
এটি একটি কাস্টম রুল, যা চেক করে যে পাসওয়ার্ডে "xyz" শব্দটি আছে কি না। যদি না থাকে, তাহলে এটি একটি ত্রুটি বার্তা প্রদর্শন করবে। - PasswordValidator:
এখানে আমরাPasswordValidatorব্যবহার করেছি যা LengthRule, UppercaseCharacterRule, DigitCharacterRule, SpecialCharacterRule এবং আমাদের কাস্টম রুলটি যুক্ত করে পাসওয়ার্ড যাচাই করবে। - Password Validation:
আমরা একটি পাসওয়ার্ড "MySecurexyz123!" যাচাই করছি, যা পাসওয়ার্ডের মধ্যে "xyz" শব্দটি রয়েছে এবং এর মান অনুযায়ী পাসওয়ার্ডটি বৈধ হবে।
Maven Dependency:
আপনি যদি Passay লাইব্রেরি ব্যবহার করতে চান, তবে নিশ্চিত করুন যে আপনার প্রোজেক্টে এটি যোগ করা রয়েছে:
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.0</version>
</dependency>
কাস্টম রুল তৈরির ক্ষেত্রে কিছু পরামর্শ:
- Regex ব্যবহার: আপনি কাস্টম রুলে regular expressions (regex) ব্যবহার করতে পারেন পাসওয়ার্ডের মধ্যে কিছু নির্দিষ্ট প্যাটার্ন চেক করার জন্য।
- Complex Logic: আপনি আরও জটিল লজিক প্রয়োগ করতে পারেন যেমন পাসওয়ার্ডে বিশেষ কিছু অক্ষরের অবস্থান বা কিছু অক্ষরের পুনরাবৃত্তি সংখ্যার সীমা।
- Error Messages: কাস্টম রুলের সাথে ব্যবহারকারীকে নির্দিষ্ট ও তথ্যপূর্ণ ত্রুটি বার্তা প্রদান করুন যাতে তারা বুঝতে পারে কেন পাসওয়ার্ডটি অবৈধ।
উপসংহার:
Passay এর মাধ্যমে কাস্টম পাসওয়ার্ড ভ্যালিডেশন রুল তৈরি করা অনেক সহজ, এবং এটি নিরাপত্তা নীতির সাথে আপনার প্রয়োজনীয়তা অনুযায়ী পাসওয়ার্ড যাচাই করতে সহায়ক। এটি আপনাকে কাস্টম নিয়মের মাধ্যমে আপনার পাসওয়ার্ড নিরাপত্তা আরও শক্তিশালী করতে সাহায্য করবে।