6
วิธีตั้งค่าผู้ใช้ที่พิสูจน์ตัวตนด้วยตนเองใน Spring Security / SpringMVC
หลังจากผู้ใช้ใหม่ส่งแบบฟอร์ม 'บัญชีใหม่' ฉันต้องการล็อกอินผู้ใช้นั้นด้วยตนเองเพื่อที่พวกเขาจะได้ไม่ต้องเข้าสู่ระบบในหน้าถัดไป หน้าล็อกอินแบบฟอร์มปกติที่ผ่านตัวสกัดกั้นการรักษาความปลอดภัยแบบสปริงทำงานได้ดี ในตัวควบคุมรูปแบบบัญชีใหม่ฉันกำลังสร้าง UsernamePasswordAuthenticationToken และตั้งค่าใน SecurityContext ด้วยตนเอง: SecurityContextHolder.getContext().setAuthentication(authentication); ในหน้าเดียวกันนั้นฉันตรวจสอบในภายหลังว่าผู้ใช้เข้าสู่ระบบด้วย: SecurityContextHolder.getContext().getAuthentication().getAuthorities(); สิ่งนี้ส่งคืนหน่วยงานที่ฉันตั้งไว้ก่อนหน้านี้ในการตรวจสอบสิทธิ์ ทั้งหมดเป็นอย่างดี. แต่เมื่อมีการเรียกรหัสเดียวกันนี้ในหน้าถัดไปที่ฉันโหลดโทเค็นการตรวจสอบความถูกต้องจะเป็นเพียง UserAnonymous ฉันไม่ชัดเจนว่าเหตุใดจึงไม่เก็บการรับรองความถูกต้องที่ฉันตั้งไว้ในคำขอก่อนหน้านี้ ความคิดใด ๆ ? เป็นไปได้ไหมว่ารหัสเซสชันไม่ได้รับการตั้งค่าอย่างถูกต้อง? มีบางอย่างที่อาจเขียนทับการรับรองความถูกต้องของฉันหรือไม่? บางทีฉันอาจต้องการขั้นตอนอื่นเพื่อบันทึกการรับรองความถูกต้อง? หรือมีบางอย่างที่ฉันต้องทำเพื่อประกาศการรับรองความถูกต้องทั่วทั้งเซสชันแทนที่จะร้องขอเพียงครั้งเดียว แค่มองหาความคิดบางอย่างที่อาจช่วยให้ฉันเห็นว่าเกิดอะไรขึ้นที่นี่