প্রকল্প সম্পর্কে
Sa-Token হলো dromara কমিউনিটি দ্বারা রক্ষণাবেক্ষণ করা একটি লাইটওয়েট Java পারমিশন অথেনটিকেশন ফ্রেমওয়ার্ক, যা Apache-2.0 প্রোটোকলের অধীনে ওপেন-সোর্স। বর্তমান সংস্করণ v1.46.0, JDK 8 থেকে 25 সমর্থন করে। প্রকল্পটি একটি "এক-স্টপ" অথেনটিকেশন সমাধান হিসেবে অবস্থান করছে, যার মূল মডিউলগুলির মধ্যে রয়েছে লগইন অথেনটিকেশন, পারমিশন অথেনটিকেশন, সিঙ্গেল সাইন-অন (SSO), OAuth2.0 এবং মাইক্রোসার্ভিস অথেনটিকেশন।
লগইন অথেনটিকেশনের ক্ষেত্রে, ফ্রেমওয়ার্কটি স্ট্যাটিক কলের মাধ্যমে সেশন লগইন এবং যাচাই সম্পন্ন করতে পারে, যেমন StpUtil.login(অ্যাকাউন্ট আইডি) দিয়ে লগইন সম্পন্ন করা, StpUtil.checkLogin() দিয়ে লগইন অবস্থা যাচাই করা; লগইন না থাকলে NotLoginException নিক্ষেপ করা হয়। পারমিশন অথেনটিকেশন অ্যানোটেশন-ভিত্তিক এবং রাউটিং ইন্টারসেপ্টর-ভিত্তিক দুটি পদ্ধতি সমর্থন করে: @SaCheckPermission("user:add") এর মতো অ্যানোটেশন অথেনটিকেশনকে ব্যবসায়িক কোড থেকে আলাদা করতে পারে; রাউটিং ইন্টারসেপশন SaInterceptor এবং SaRouter.match-এর মাধ্যমে পাথ মডিউল অনুযায়ী পারমিশন ভাগ করে।
ফ্রেমওয়ার্কটি অনেকগুলি ফিচার কভার করে, README-তে তালিকাভুক্ত রয়েছে: একক/মাল্টি-এন্ড লগইন, একই এন্ডে পারস্পরিক এক্সক্লুসিভ লগইন, মনে রাখা মোড, সেকেন্ডারি অথেনটিকেশন, কিক-আউট (অ্যাকাউন্ট আইডি বা Token মান অনুযায়ী), অ্যাকাউন্ট নিষিদ্ধকরণ, অস্থায়ী পরিচয় পরিবর্তন, অন্য অ্যাকাউন্ট সিমুলেশন, সেশন কোয়েরি, গ্লোবাল লিসেনার এবং গ্লোবাল ফিল্টার, মাল্টি-অ্যাকাউন্ট সিস্টেম অথেনটিকেশন, Http Basic/Digest অথেনটিকেশন, পাসওয়ার্ড এনক্রিপশন টুল, অস্থায়ী Token, স্বাধীন Redis, স্বয়ংক্রিয় রিনিউ, ট্যাগ ডায়ালেক্ট (Thymeleaf, beetl) ইত্যাদি। পার্সিস্টেন্স লেয়ার Redis ইন্টিগ্রেট করতে পারে যাতে রিস্টার্টে ডেটা না হারায়, এবং ফ্রন্ট-এন্ড/ব্যাক-এন্ড বিচ্ছিন্ন পরিস্থিতিতে APP, মিনি-প্রোগ্রাম ইত্যাদি কুকি-বিহীন টার্মিনালের অথেনটিকেশন সমর্থন করে।
SSO মডিউল তিনটি মোড প্রদান করে: মোড এক ফ্রন্ট-এন্ড একই ডোমেইন এবং ব্যাক-এন্ড একই Redis-এর জন্য প্রযোজ্য, শেয়ার্ড কুকির মাধ্যমে সেশন সিঙ্ক্রোনাইজ করে; মোড দুই ফ্রন্ট-এন্ড ভিন্ন ডোমেইন কিন্তু ব্যাক-এন্ড একই Redis-এর জন্য প্রযোজ্য, URL রিডাইরেক্টের মাধ্যমে সেশন প্রচার করে; মোড তিন ফ্রন্ট-এন্ড ভিন্ন ডোমেইন এবং ব্যাক-এন্ড ভিন্ন Redis-এর জন্য প্রযোজ্য, HTTP অনুরোধের মাধ্যমে ticket যাচাই করে সেশন পায়। প্রকল্পটি NoSdk মোড উদাহরণ এবং sso-server ইন্টারফেস ডকুমেন্টেশনও প্রদান করে, যা অ-Java প্রকল্পের সংযোগের সুবিধা দেয়, এবং ডোমেইন যাচাই, ticket যাচাই, প্যারামিটার সাইনিং যাচাই ইত্যাদি নিরাপত্তা ব্যবস্থা অন্তর্ভুক্ত করে।
OAuth2 মডিউল অথরাইজেশন কোড, ইমপ্লিসিট, পাসওয়ার্ড এবং ক্লায়েন্ট ক্রেডেনশিয়াল চারটি অথরাইজেশন মোড সমর্থন করে। অতিরিক্তভাবে, ফ্রেমওয়ার্ক JWT ইন্টিগ্রেশন (তিনটি মোড), RPC কল অথেনটিকেশন এবং স্টেট ট্রান্সমিশন (dubbo, grpc ইত্যাদি), API Key সিক্রেট অথরাইজেশন, API প্যারামিটার সাইনিং (টেম্পার-প্রুফ, রিপ্লে-প্রুফ) ইত্যাদি ক্ষমতা প্রদান করে।
ইন্টিগ্রেশনের ক্ষেত্রে, SpringBoot 2 ছাড়াও, SpringBoot 3/4, Solon, JFinal ইত্যাদি ফ্রেমওয়ার্কের জন্য ইন্টিগ্রেশন প্যাকেজ প্রদান করে, এবং Gateway, ShenYu, Zuul ইত্যাদি গেটওয়ের রাউটিং ইন্টারসেপশন অথেনটিকেশন অ্যাডাপ্ট করে। প্রকল্পটিতে 60টিরও বেশি স্বাধীন উদাহরণ রয়েছে, যা লগইন অথেনটিকেশন, পারমিশন অথেনটিকেশন, SSO, OAuth2, মাইক্রোসার্ভিস অথেনটিকেশন, JWT, প্যারামিটার সাইনিং ইত্যাদি পরিস্থিতি কভার করে, এবং বহু-ভাষা বাস্তবায়ন সংস্করণ (Rust, Go, NodeJS, PHP) এর কমিউনিটি লিংক প্রদান করে।
ডকুমেন্টেশন প্রধানত চীনা ভাষায়, সাথে ট্র্যাডিশনাল চাইনিজ, ইংরেজি, জাপানি, কোরিয়ান, রাশিয়ান সংস্করণও রয়েছে। README-তে Snowy, RuoYi-Vue-Plus, Smart-Admin, চেংডান, ডেংডেং, শিয়ি ব্লগ ইত্যাদি একাধিক ইন্টিগ্রেশন কেস তালিকাভুক্ত করা হয়েছে, এবং Gitee GVP, GitCode G-Star ইত্যাদি কমিউনিটি সম্মান উল্লেখ করা হয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.