我有一個Spring MVC服務器,它提供了一堆REST端點以及websocket端點。除登錄端點以外的所有內容都需要認證我正在使用JWT來驗證來自客戶端的請求。提供auth標頭與SockJS
當用戶登錄時,我返回包含JWT令牌的X-AUTH-TOKEN標頭。然後將此令牌傳遞到服務器的每個請求的相同頭文件中。這一切都適用於REST端點,但我無法弄清楚如何在websocket上執行此操作。
我使用SockJS,當我打開連接:
var socket = new SockJS('/socket/updates', null, {});
這將導致一個GET請求/插座/更新/信息T = xxx,它返回一個403(因爲一切都需要身份驗證通過?默認)。
理想情況下,我只需將我的X-AUTH-TOKEN標頭髮送給SockJS所做的任何XHR請求,但我看不到任何添加標題的方式來查看API。
最壞的情況我可以改變SockJS來做到這一點,但我想知道這個功能是否被故意忽略?我知道SockJS出於安全原因不支持cookies,但這不是我想要做的。
此外,爲了測試的目的,我確實允許info端點擁有匿名訪問權限,但是在其他一些端點上使用了403端口 - 感覺更優雅,只需傳遞這些請求的auth細節,我的服務器安全。
任何幫助表示讚賞。
乾杯
這設置STOMP頭,而不是HTTP頭,從而它可能是解決辦法的一部分它不能解決初始問題,它是無法將自定義HTTP標頭添加到SockJS握手請求中。 – Plebejusz