2017-02-14 47 views
1

我已被授權執行SAML2.0 SSO概念驗證,並且已成功整合了spring saml擴展,這非常簡單,謝謝作者。雖然,我仍然無法得到RelayState參數的工作,但我總是在接收SP上得到它的值爲null在SP上接收到的IdP發起的saml總是將RelayState設爲空

我使用SSOCircle's公共IdPIdP啓動的流(雖然我們沒有封鎖了SP啓動模式),並在URL追加RelayState

我試圖使用SAMLRelayStateSuccessHandler,哪兒能找到從SAMLCredential實例RelayState參數,但它始終null。我將它追溯到HTTPPostDecoder.doDecode(MessageContext messageContext)方法(HTTP post binding),並且它在那裏也是空的。我也跟蹤了瀏覽器網絡的URL,注意到SP消費者端點發布url,即/saml/SSO包含SAMLResponse,但沒有RelayState參數(我的理解是它將是一個單獨的參數)。

我覺得IdP可能沒有發送的RelayState我的SP,但還沒有看到在IdP端的任何配置啓用/禁用所以不知道。

如果有人可以分享他們類似的經驗,我將不勝感激。

+0

請提供網絡跟蹤與http請求的流程。這是驗證RelayState是否被IDP傳遞的最好方法。 – Hos

+0

@hos我很抱歉回覆這件事,並非常感謝您的回覆。沒有任何答覆超過15天,我已經放棄並沒有監控更新。我之後可能還沒有監控到的另一個原因是,在我的發展之後,我開始採用另一種IDP(我開發的是針對公衆IDP ssocircle)的Pre-prod。它在新的IDP中運行得很順利,所以我認爲問題出在ssocircle上,而不是我的代碼。事實上,最近我意識到ssocircle IDP也開始工作,不確定他們是否進行了一些修復。順便說一下,網絡跟蹤在發佈到我的SP時沒有攜帶RelayState。 – Pete

回答

0

我不再有這個問題,但沒有明確添加任何修補程序。我最好的猜測是ssocircle在修正了他們的結尾之後,RelayState網址開始流傳至終。 感謝@hos的幫助。不想讓問題保持開放,請將此添加爲答案。