কোনও নতুন ব্যবহারকারী 'নতুন অ্যাকাউন্ট' ফর্ম জমা দেওয়ার পরে, আমি সেই ব্যবহারকারীকে ম্যানুয়ালি লগ ইন করতে চাই যাতে তাদের পরবর্তী পৃষ্ঠায় লগইন করতে না হয়।
বসন্ত সুরক্ষা ইন্টারসেপ্টর দিয়ে যাওয়া সাধারণ ফর্ম লগইন পৃষ্ঠাটি ঠিক কাজ করে।
নতুন অ্যাকাউন্ট-ফর্ম নিয়ামকটিতে আমি একটি ব্যবহারকারীনাম পাসওয়ার্ডআউটেন্টিফিকেশন টোকেন তৈরি করছি এবং এটি ম্যানুয়ালি সুরক্ষাকন্টেক্সটে সেট করে দিচ্ছি:
SecurityContextHolder.getContext().setAuthentication(authentication);
সেই একই পৃষ্ঠায় আমি পরে যাচাই করেছিলাম যে ব্যবহারকারীর সাথে লগ ইন হয়েছে:
SecurityContextHolder.getContext().getAuthentication().getAuthorities();
এটি প্রমাণীকরণের আগে আমি নির্ধারিত কর্তৃপক্ষকে ফিরিয়ে দেয়। সবকিছু ঠিক আছে.
কিন্তু যখন এই একই কোডটি আমি লোড করার ঠিক পরের পৃষ্ঠায় কল করা হয়, তখন প্রমাণীকরণের টোকেনটি কেবল ব্যবহারকারী নামবিহীন।
আমি পূর্বের অনুরোধে যে প্রমাণীকরণটি সেট করেছি তা কেন তা পরিষ্কার নয়। কোন চিন্তা?
- সেশন আইডি সঠিকভাবে সেট আপ না করা নিয়ে এটি কী করতে পারে?
- এমন কিছু আছে যা সম্ভবত আমার প্রমাণীকরণটি কোনওভাবে ওভাররাইট করছে?
- প্রমাণীকরণ সংরক্ষণ করার জন্য সম্ভবত আমার আর একটি পদক্ষেপ দরকার?
- বা কোনও একক অনুরোধের চেয়ে পুরো অধিবেশনে প্রমাণীকরণ ঘোষণা করার জন্য আমার কিছু করার দরকার আছে?
কেবল কিছু চিন্তা সন্ধান করছি যা এখানে কী ঘটছে তা দেখতে আমাকে সহায়তা করতে পারে।
SecurityContextHolder.getContext().setAuthentication(authentication)
। এটি কাজ করে এবং সাধারণ, তবে গুরুতর কার্যকারিতা সংক্রান্ত ত্রুটিগুলি রয়েছে যা যদি আপনি কেবল এটি করেন তবে আপনি পূরণ করতে পারেন। আরও তথ্যের জন্য, আমার প্রশ্ন এবং উত্তরটি দেখুন: stackoverflow.com/questions/47233187/…