Spring Boot প্রজেক্টে Passay লাইব্রেরি ইন্টিগ্রেট করার জন্য, আপনি পাসওয়ার্ড ভ্যালিডেশন কনফিগার করে একটি সহজ এবং নিরাপদ সিস্টেম তৈরি করতে পারেন। নিচে Passay এর Spring Boot প্রজেক্টে ইন্টিগ্রেশন করার জন্য পদক্ষেপগুলি দেয়া হয়েছে।
১. Maven Dependency যোগ করা
প্রথমে, আপনার pom.xml ফাইলে Passay লাইব্রেরির dependency যোগ করুন।
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.0</version>
</dependency>
২. Passay Configuration ক্লাস তৈরি করা
Spring Boot অ্যাপ্লিকেশনে Passay কনফিগার করার জন্য একটি configuration ক্লাস তৈরি করতে হবে, যেখানে আপনি পাসওয়ার্ডের ভ্যালিডেশন নিয়মগুলো সেট করবেন।
import org.passay.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Arrays;
@Configuration
public class PassayConfig {
@Bean
public PasswordValidator passwordValidator() {
return new PasswordValidator(Arrays.asList(
new LengthRule(8, 16), // পাসওয়ার্ডের দৈর্ঘ্য 8-16 অক্ষর
new UppercaseCharacterRule(1), // অন্তত একটি বড় হাতের অক্ষর
new DigitCharacterRule(1), // অন্তত একটি সংখ্যা
new SpecialCharacterRule(1), // অন্তত একটি স্পেশাল ক্যারেক্টার
new WhitespaceRule() // পাসওয়ার্ডে ফাঁকা জায়গা নিষিদ্ধ
));
}
}
এটি একটি PasswordValidator Bean তৈরি করবে যা Spring Context-এ ব্যবহৃত হবে।
৩. পাসওয়ার্ড ভ্যালিডেশন সেবা তৈরি করা
এখন একটি সেবা (service) তৈরি করা যেতে পারে যা Passay-এর PasswordValidator ব্যবহার করে পাসওয়ার্ড যাচাই করবে।
import org.passay.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class PasswordValidationService {
@Autowired
private PasswordValidator passwordValidator;
public boolean validatePassword(String password) {
RuleResult result = passwordValidator.validate(new PasswordData(password));
return result.isValid();
}
public String getValidationMessages(String password) {
RuleResult result = passwordValidator.validate(new PasswordData(password));
return String.join(", ", passwordValidator.getMessages(result));
}
}
এই সেবাটি validatePassword() এবং getValidationMessages() মেথডগুলো প্রদান করবে। প্রথমটি পাসওয়ার্ড যাচাই করবে এবং দ্বিতীয়টি যদি পাসওয়ার্ডটি অবৈধ হয় তবে সেই সম্পর্কিত বার্তা প্রদান করবে।
৪. REST Controller তৈরি করা
এখন, Spring Boot এর একটি REST Controller তৈরি করুন যাতে ব্যবহারকারীরা HTTP অনুরোধের মাধ্যমে পাসওয়ার্ড যাচাই করতে পারে।
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/password")
public class PasswordValidationController {
@Autowired
private PasswordValidationService passwordValidationService;
@PostMapping("/validate")
public String validatePassword(@RequestParam String password) {
if (passwordValidationService.validatePassword(password)) {
return "পাসওয়ার্ড বৈধ!";
} else {
return "পাসওয়ার্ড অবৈধ: " + passwordValidationService.getValidationMessages(password);
}
}
}
এটি একটি HTTP POST API তৈরি করবে, যা /api/password/validate রুটে পাসওয়ার্ড গ্রহণ করবে এবং সেটির ভ্যালিডেশন ফলাফল ফিরিয়ে দেবে।
৫. Spring Boot অ্যাপ্লিকেশন চালু করা
আপনার Spring Boot অ্যাপ্লিকেশন চালু করুন এবং API-টি পরীক্ষা করুন। যদি আপনি এটি ব্যবহার করতে চান, curl বা Postman এর মাধ্যমে POST অনুরোধ পাঠাতে পারেন।
উদাহরণ POST Request:
curl -X POST "http://localhost:8080/api/password/validate?password=MySecure@123"
যদি পাসওয়ার্ডটি বৈধ হয়, এটি "পাসওয়ার্ড বৈধ!" ফিরিয়ে দেবে। আর যদি অবৈধ হয়, পাসওয়ার্ডের ত্রুটির বার্তা প্রদান করবে।
৬. কিছু অতিরিক্ত কনফিগারেশন
আপনি যদি চান পাসওয়ার্ড ভ্যালিডেশন আরও কাস্টমাইজড করতে (যেমন, বিশেষ ধরনের চরিত্র বা অতিরিক্ত নিয়ম) তাহলে Passay এর বিভিন্ন নিয়ম ব্যবহার করতে পারেন যেমন:
CharacterRule(শুধুমাত্র নির্দিষ্ট অক্ষরগুলি অনুমোদিত)DictionaryRule(অবৈধ পাসওয়ার্ডের জন্য একটি শব্দকোষ ফাইল ব্যবহার)
উপসংহার
এই পদক্ষেপগুলি অনুসরণ করে আপনি সহজে Spring Boot প্রজেক্টে Passay ইন্টিগ্রেট করতে পারেন এবং পাসওয়ার্ড ভ্যালিডেশন সিস্টেম তৈরি করতে পারেন। Passay এর মাধ্যমে নিরাপদ পাসওয়ার্ড নীতি নির্ধারণ করতে পারবেন এবং Spring Boot অ্যাপ্লিকেশনে তা সহজে প্রয়োগ করতে পারবেন।
Read more