2014-09-24 30 views
6

'dan sonra bunları işleme İsteğimi url istek parametresini sitemin (SP) ilk isteğinden hatırla ve IdP yanıtından sonra kullan.Spring saml - SP'de oturum açmayı başlatırken istek parametresini hatırla ve IdP yanıtı

Spring-saml uzantısını kullanıyorum ve relayState özniteliğini düşünüyorum, ancak bunu, istek üzerine parametrelerle nasıl oluşturduğunu bulamıyorum.

Sso kimlik doğrulama işleminin hedef sayfasından (uygulama modülü) sonra yönlendirme kullanıcısına, ilk istekte ne olduğuna bağlı olarak ihtiyacım var.

cevap

14

Spring SAML örnek uygulama, bu kutunun dışında gibi davranır. Kullanıcı Bahar Security tarafından korunan bir sayfaya geldiği ve kimlik doğrulama sistemi gerektirdiğinde:

  • HTTP oturumuna bilgi depolayarak (ExceptionTranslationFilter ve HttpSessionRequestCache kullanarak Bahar Güvenlik içine otomatik olarak yapılır) sayfasını çağırmak için kullanılan parametreleri hatırlar
  • kullanıcı IDP de kimliğini doğrular ve uygulama
  • Yay SAML geri yönlendirilir yanıt ve i doğrular
  • IDP seçimi mümkün IDP yeniden yönlendirir Yay SAML'yi en giriş noktası (SAMLEntryPoint sınıfı), çağırır (Örnek uygulamasında) orada depolanmış bir isteği (ilk aşamada orada koymak) var ve eğer öyleyse aynı seti ile hatırlanan sayfasını açmak için kullanıcının tarayıcısına yapar mı Çeşidi org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler
  • başarı işleyicisi kontrol eder nvokes AuthenticationSuccessHandler, güvenlik kontrolü artık geçirmesi gerektiğini başlangıçta
  • gibi parametrelerin, kimliği doğrulanmış kullanıcı sayfayı

amaçladığınız gibi tabii bu kullanarak röle durumunu uygulamak erişmek için yetkili olması koşuluyla. Röle durumunu ayarlamak için doğru yol SAMLEntryPoint, getProfileOptions geçersiz kılma yöntemini kullanarak ve döndürülen WebSSOProfileOptions nesnesinde istediğiniz röle durumunu döndürerek.

AuthenticationSuccessHandler değerini org.springframework.security.saml.SAMLRelayStateSuccessHandler olarak değiştirerek, başarılı kimlik doğrulamasından sonra röle durumundan döndürülen URL'ye yönlendirme yapabilirsiniz.

+0

Harika! Tam olarak bu cümleye ihtiyacım var: "Röle durumunu ayarlamanın doğru yolu, SAMLEntryPoint'i genişleterek, getProfileOptions yöntemini geçersiz kılarak ve döndürülen WebSSOProfileOptions nesnesinde istediğiniz röle durumunu döndürerek." Çok teşekkürler. –

+0

relayState, kimlik doğrulama sunucusu ve istemci arasındaki bağlamı iletmenin iyi bir yoluydu. Bahşiş için teşekkürler! –