SORU
12 Ocak 2011, ÇARŞAMBA


Nasıl el ile Bahar Güvenlik kimliği doğrulanmış bir kullanıcı / SpringMVC ayarlamak için

Yeni bir kullanıcı 'Yeni hesap' şeklinde, el sonraki sayfada giriş yok yani o kullanıcı oturum açmak istiyorum. bir gönderdikten sonra

Normal form oturum açma sayfasında bahar güvenlik uçağı geçiyor gayet güzel çalışıyor.

-Hesabı yeni form kontrol sisteminde bir UsernamePasswordAuthenticationToken oluşturma ve SecurityContext manuel olarak belirliyorum:

SecurityContextHolder.getContext().setAuthentication(authentication);

Aynı sayfada ben kullanıcı ile oturum sonra kontrol edin:

SecurityContextHolder.getContext().getAuthentication().getAuthorities();

Bu kimlik daha önce kurdum yetkililer verir. Her şey yolunda.

Ama bu aynı kodu bir sonraki sayfa yük üzerinde çağrıldığında, kimlik doğrulama belirteci sadece UserAnonymous.

Kimlik doğrulama ben önceki isteğinin devam etmedi neden emin değilim. Herhangi bir düşünce?

  • Oturum KİMLİĞİ doğru şekilde kurulmuş olmak değil alakası olabilir mi?
  • Muhtemelen benim kimlik üzerine bir şey bir şekilde var mı?
  • Belki de sadece kimlik doğrulama kurtarmak için bir adım mı ihtiyacınız var?
  • Ya da tüm seans boyunca kimlik bildirmek için tek isteği bir şekilde yerine yapmam gereken bir şey var mı?

Bana burada neler olduğunu görmek yardımcı olabilecek bazı düşünceler arıyor.

CEVAP
1 Aralık 2011, PERŞEMBE


Benim post düşündüm başka bir Tam Çözüm bulamadım. Bu biraz hack olabilir, ama yukarıdaki sorun için sorun çözüldü:

public void login(HttpServletRequest request, String userName, String password)
{

    UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(userName, password);

    // Authenticate the user
    Authentication authentication = authenticationManager.authenticate(authRequest);
    SecurityContext securityContext = SecurityContextHolder.getContext();
    securityContext.setAuthentication(authentication);

    // Create a new session and add the security context.
    HttpSession session = request.getSession(true);
    session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • Marques Brownlee

    Marques Brow

    21 Mart 2008