我們有一個使用spring 4的websocket服務器端實現。它已被配置爲使用auth/authz的spring安全性。在客戶端,我們使用sockJS,當客戶端與服務器位於同一個域時,sockJS可以很好地工作。SockJS在不同域(CORS)上沒有傳遞證書信息
電話的WebSocket是由這樣...
插座=新SockJS( 「http://guest:[email protected]/MyWebSocketApp/tracker」)
這最終使得以http://guest:[email protected]/MyWebSocketApp/tracker/info調用決定運輸使用。這一切都很好。
但是,當使用來自不同域的客戶端時,我發現證書被剝離出來。所以,當這個客戶端在不同的域上時,我看到正在進行的呼叫是: http://myinterestingdomain.com/MyWebSocketApp/tracker/info。我沒有看到通過的憑據。由於這個原因,我得到了401錯誤(未經授權)的用戶。我們已經在服務器端的CORS設定,並且有:
訪問控制允許的憑據「真」
是否有人可以幫助我,我沒辦法了,我不明白爲什麼?憑據越來越剝離出來?難道這是關係到CORS?
非常感謝。它澄清了很多。所以,這聽起來像是端到端的功能工作,我們將不得不等待SockJS社區的修復。我的理解是否正確?同時,我們決定使用Spring的「純粹」websocket支持。這意味着,從WebSocketConfigurer impl中刪除.withSockJS()方法。我們已經證實,使用基於java的純websocket客戶端時,它工作正常。瀏覽器客戶端(使用純websocket JS)是否有一種解決方法可以跨域傳遞憑據? – myspri 2014-11-04 17:40:59