Yeni bir kullanıcı bir 'Yeni hesap' formu gönderdikten sonra, sonraki sayfada oturum açmalarına gerek kalmaması için bu kullanıcıyı manuel olarak oturum açmak istiyorum.
Yaylı güvenlik önleyiciden geçen normal form giriş sayfası gayet iyi çalışıyor.
Yeni hesap formu denetleyicisinde bir UsernamePasswordAuthenticationToken oluşturuyorum ve bunu SecurityContext'te manuel olarak ayarlıyorum:
SecurityContextHolder.getContext().setAuthentication(authentication);
Aynı sayfada daha sonra kullanıcının şu şekilde oturum açtığını kontrol ediyorum:
SecurityContextHolder.getContext().getAuthentication().getAuthorities();
Bu, kimlik doğrulamasında daha önce belirlediğim yetkileri döndürür. Herşey iyi.
Ancak yüklediğim sonraki sayfada aynı kod çağrıldığında, kimlik doğrulama belirteci yalnızca UserAnonymous'dur.
Önceki talepte belirlediğim kimlik doğrulamasını neden saklamadığından emin değilim. Düşüncesi olan var mı?
- Oturum kimliğinin doğru ayarlanmaması ile bir ilgisi olabilir mi?
- Bir şekilde kimlik doğrulamamın üzerine yazan bir şey var mı?
- Belki de kimlik doğrulamayı kaydetmek için başka bir adıma ihtiyacım var?
- Veya bir şekilde tek bir istek yerine tüm oturum boyunca kimlik doğrulamasını bildirmek için yapmam gereken bir şey var mı?
Burada neler olduğunu görmeme yardımcı olabilecek bazı düşünceler arıyorum.
SecurityContextHolder.getContext().setAuthentication(authentication)
. Çalışır ve yaygındır, ancak bunu yaparsanız karşılaşacağınız ciddi işlevsellik eksiklikleri vardır. Daha fazla bilgi için soruma ve cevaba bakın: stackoverflow.com/questions/47233187/…