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

  • hotstrikegently

    hotstrikegen

    26 AĞUSTOS 2011
  • ShotgunSandwichENT

    ShotgunSandw

    3 EKİM 2012
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008