我想使用Web套接字創建一個簡單的CRUD應用程序,並在Glassfish 4上運行Java EE 7 Websocket服務器,並與單個頁面網站進行通信。我的問題是:我如何保護我的應用程序?換句話說:我如何執行用戶身份驗證和授權?因爲只有在請求用戶的身份驗證和授權之後,我才希望服務器回覆一些消息。最後但並非最不重要的是:我如何提供「記住我」功能?謝謝。如何在Java EE 7中保護Websocket服務器
3
A
回答
4
一個實用的方法是讓用戶通過您的Web頁面登錄,成功驗證後從您的Web應用程序設置一個cookie,並在WebSocket服務器上檢查來自頁面的傳入WebSocket連接中的Cookie。
這將需要Web頁面和WebSocket來自同一個來源(否則瀏覽器將不會在WebSocket連接上發送cookie)。
另一種可能性是通過WebSocket連接上的消息實現自定義認證機制。
另一種可能性是使用基於TLS和基於客戶端證書的身份驗證。
請注意,雖然WebSocket具有基於HTTP的初始打開握手,並且原則上可以使用任何HTTP身份驗證機制,但實際上有一些限制。例如。使用HTTP基本身份驗證,瀏覽器將爲純HTML頁面請求呈現登錄對話框,但不會爲所謂的子資源(如圖像請求和WebSocket(也可視爲子資源))提供登錄對話框。
相關問題
- 1. 如何在Java EE 6中保護REST Web服務
- 2. 使用JWT在JAVA中保護REST服務ee
- 3. 保護Java EE網頁
- 4. Java EE TCP服務器
- 5. Swing和Java EE服務器
- 6. 在Java上編寫WebSocket服務器。問題在Windows 7 64位
- 7. Java websocket服務器給404
- 8. Java登錄服務器淹沒保護
- 9. 如何使用Java EE 7 WebSocket實現推送到客戶端?
- 10. 安卓系統的websocket服務器,java
- 11. 如何在.net中保護web服務?
- 12. 如何保護emacs服務器?
- 13. DDOS攻擊..如何保護服務器
- 14. 如何保護Flash政策服務器?
- 15. 如何保護debian nginx web服務器
- 16. 如何使用jwt保護服務器
- 17. 如何保護服務器的Linux
- 18. 在Java EE服務器Exec的運行
- 19. 如何保護wcf服務
- 20. 如何保護OData服務?
- 21. 保護git的服務器
- 22. 保護專用服務器
- 23. 保護Web服務器中的資源
- 24. Web服務Java EE
- 25. 的Java EE 7 SDK與JDK Ubuntu服務器12.04
- 26. WebSocket服務器中的Java錯誤
- 27. Akka Websocket服務器推送在java
- 28. 保護Javascript(服務器端?)
- 29. Websocket服務器Android
- 30. 如何在java ee 6 Framework中將數據保存在JAX-WS Web服務中?
謝謝你的友好和詳盡的答案。我想我更喜歡基於cookie的解決方案。無論如何,你會在cookie中放什麼?存儲在服務器上的隨機ID以及與用戶關聯的隨機ID?你知道這個解決方案的例子嗎? –
如果用於身份驗證目的,cookie可能是一個隨機字符串。請注意,您希望一般情況下運行TLS(因爲否則Cookie可能會被中間對手的人嗅探)。是的,那麼你可以將後端的用戶信息與該cookie值相關聯。如果你想在cookie中存儲信息(我不會推薦一般),那麼你可能想要的cookie值不僅是「普通」的數據,但加密簽名。否則,任何人都可以注入並非由您創建的數據(攻擊向量)。 – oberstet
非常感謝你,我很感謝你的好意! –